summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNiko Kiirala <niko@kiirala.com>2007-06-13 14:56:06 +0000
committerkiirala <kiirala@users.sourceforge.net>2007-06-13 14:56:06 +0000
commit2f214003ec338a1980afb91e25c55be67c7ab2ff (patch)
treeb738684e90bf887a3e5d57a7ff010c22dc93af91 /src
parentFilter effects: support for SourceAlpha and BackgroundAlpha (diff)
downloadinkscape-2f214003ec338a1980afb91e25c55be67c7ab2ff.tar.gz
inkscape-2f214003ec338a1980afb91e25c55be67c7ab2ff.zip
Fixed a rendering problem in feOffset
(bzr r3058)
Diffstat (limited to 'src')
-rw-r--r--src/display/nr-filter-offset.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/display/nr-filter-offset.cpp b/src/display/nr-filter-offset.cpp
index ee6741d20..3b9c051e2 100644
--- a/src/display/nr-filter-offset.cpp
+++ b/src/display/nr-filter-offset.cpp
@@ -72,10 +72,17 @@ void FilterOffset::area_enlarge(NRRectL &area, Matrix const &trans)
offset[X] -= trans[4];
offset[Y] -= trans[5];
- area.x0 -= static_cast<NR::ICoord>(offset[X]);
- area.x1 -= static_cast<NR::ICoord>(offset[X]);
- area.y0 -= static_cast<NR::ICoord>(offset[Y]);
- area.y1 -= static_cast<NR::ICoord>(offset[Y]);
+ if (offset[X] > 0) {
+ area.x0 -= static_cast<NR::ICoord>(offset[X]);
+ } else {
+ area.x1 -= static_cast<NR::ICoord>(offset[X]);
+ }
+
+ if (offset[Y] > 0) {
+ area.y0 -= static_cast<NR::ICoord>(offset[Y]);
+ } else {
+ area.y1 -= static_cast<NR::ICoord>(offset[Y]);
+ }
}
} /* namespace NR */