diff options
Diffstat (limited to 'src/sp-item.cpp')
| -rw-r--r-- | src/sp-item.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/sp-item.cpp b/src/sp-item.cpp index 8f91c97e6..e52042e35 100644 --- a/src/sp-item.cpp +++ b/src/sp-item.cpp @@ -623,11 +623,17 @@ sp_item_update(SPObject *object, SPCtx *ctx, guint flags) } } - if (item->display && item->display->arenaitem) { + /* Update bounding box data used by filters */ + if (item->style->filter.set && item->display) { NRRect item_bbox; sp_item_invoke_bbox(item, &item_bbox, NR::identity(), TRUE, SPItem::GEOMETRIC_BBOX); NR::Maybe<NR::Rect> i_bbox = item_bbox; - nr_arena_item_set_item_bbox(item->display->arenaitem, i_bbox); + + SPItemView *itemview = item->display; + do { + if (itemview->arenaitem) + nr_arena_item_set_item_bbox(itemview->arenaitem, i_bbox); + } while ( (itemview = itemview->next) ); } // Update libavoid with item geometry (for connector routing). |
