diff options
| author | Krzysztof Kosi??ski <tweenk.pl@gmail.com> | 2013-10-01 13:25:44 +0000 |
|---|---|---|
| committer | Krzysztof KosiĆski <tweenk.pl@gmail.com> | 2013-10-01 13:25:44 +0000 |
| commit | 87d93e27330577c2fd632dbaccbd3103884aa590 (patch) | |
| tree | 2acaa8e8ab51a4dbaef40bd22bd780bdaceae0db /src/sp-text.cpp | |
| parent | Fix possible bug in DrawingItem code (diff) | |
| download | inkscape-87d93e27330577c2fd632dbaccbd3103884aa590.tar.gz inkscape-87d93e27330577c2fd632dbaccbd3103884aa590.zip | |
Comprehensive fix for the issues with disappearing filtered objects.
Fixes #304407 and possibly a few other bugs.
Revert incorrect _item_bbox changes from r12528.
Fixed bugs:
- https://launchpad.net/bugs/304407
(bzr r12648)
Diffstat (limited to 'src/sp-text.cpp')
| -rw-r--r-- | src/sp-text.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/sp-text.cpp b/src/sp-text.cpp index c515828a4..c431f52da 100644 --- a/src/sp-text.cpp +++ b/src/sp-text.cpp @@ -135,12 +135,9 @@ void SPText::remove_child(Inkscape::XML::Node *rch) { void SPText::update(SPCtx *ctx, guint flags) { - SPItem::update(ctx, flags); - - guint cflags = (flags & SP_OBJECT_MODIFIED_CASCADE); - + unsigned childflags = (flags & SP_OBJECT_MODIFIED_CASCADE); if (flags & SP_OBJECT_MODIFIED_FLAG) { - cflags |= SP_OBJECT_PARENT_MODIFIED_FLAG; + childflags |= SP_OBJECT_PARENT_MODIFIED_FLAG; } // Create temporary list of children @@ -157,14 +154,17 @@ void SPText::update(SPCtx *ctx, guint flags) { SPObject *child = reinterpret_cast<SPObject*>(l->data); // We just built this list, so cast is safe. l = g_slist_remove (l, child); - if (cflags || (child->uflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) { + if (childflags || (child->uflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) { /* fixme: Do we need transform? */ - child->updateDisplay(ctx, cflags); + child->updateDisplay(ctx, childflags); } sp_object_unref(child, this); } + // update ourselves after updating children + SPItem::update(ctx, flags); + if (flags & ( SP_OBJECT_STYLE_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG | SP_TEXT_LAYOUT_MODIFIED_FLAG ) ) |
