summaryrefslogtreecommitdiffstats
path: root/src/display/drawing-group.cpp
diff options
context:
space:
mode:
authorKrzysztof Kosi??ski <tweenk.pl@gmail.com>2011-08-19 07:33:48 +0000
committerKrzysztof KosiƄski <tweenk.pl@gmail.com>2011-08-19 07:33:48 +0000
commita49c525365ff86ea1e22281d3a3b66d7ef0087c1 (patch)
tree91c9f6d2b29fc5e1141835c560a44dd0a5a6bd89 /src/display/drawing-group.cpp
parentFix large memory leaks in the swatches panel (diff)
downloadinkscape-a49c525365ff86ea1e22281d3a3b66d7ef0087c1.tar.gz
inkscape-a49c525365ff86ea1e22281d3a3b66d7ef0087c1.zip
Fix rendering glitches appearing when filtered, cached groups have
filtered, cached children (bzr r10347.1.36)
Diffstat (limited to 'src/display/drawing-group.cpp')
-rw-r--r--src/display/drawing-group.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/display/drawing-group.cpp b/src/display/drawing-group.cpp
index 002a5a2d4..d9a75925e 100644
--- a/src/display/drawing-group.cpp
+++ b/src/display/drawing-group.cpp
@@ -57,7 +57,7 @@ DrawingGroup::setChildTransform(Geom::Affine const &new_trans)
if (_child_transform) {
current = *_child_transform;
}
-
+
if (!Geom::are_near(current, new_trans, NR_EPSILON)) {
// mark the area where the object was for redraw.
_markForRendering();
@@ -77,11 +77,11 @@ DrawingGroup::_updateItem(Geom::IntRect const &area, UpdateContext const &ctx, u
unsigned beststate = STATE_ALL;
bool outline = _drawing.outline();
+ UpdateContext child_ctx(ctx);
+ if (_child_transform) {
+ child_ctx.ctm = *_child_transform * ctx.ctm;
+ }
for (ChildrenList::iterator i = _children.begin(); i != _children.end(); ++i) {
- UpdateContext child_ctx(ctx);
- if (_child_transform) {
- child_ctx.ctm = *_child_transform * ctx.ctm;
- }
i->update(area, child_ctx, flags, reset);
}
if (beststate & STATE_BBOX) {