Code

svg-filters branch merged back to head
[inkscape.git] / src / sp-item-group.cpp
index 0f288a372a9600f562afc47c51a1db1c17eb183f..a4aa83ad2f569c85d74f4f79ee1209fb7ebaf460 100644 (file)
@@ -600,6 +600,13 @@ void CGroup::onUpdate(SPCtx *ctx, unsigned int flags) {
     if (flags & SP_OBJECT_MODIFIED_FLAG) flags |= SP_OBJECT_PARENT_MODIFIED_FLAG;
     flags &= SP_OBJECT_MODIFIED_CASCADE;
 
+    if (flags & SP_OBJECT_STYLE_MODIFIED_FLAG) {
+      SPObject *object = SP_OBJECT(_group);
+      for (SPItemView *v = SP_ITEM(_group)->display; v != NULL; v = v->next) {
+       nr_arena_group_set_style(NR_ARENA_GROUP(v->arenaitem), SP_OBJECT_STYLE(object));
+      }
+    }
+
     GSList *l = g_slist_reverse(_childList(true, ActionUpdate));
     while (l) {
         child = SP_OBJECT (l->data);
@@ -635,6 +642,13 @@ void CGroup::onModified(guint flags) {
     if (flags & SP_OBJECT_MODIFIED_FLAG) flags |= SP_OBJECT_PARENT_MODIFIED_FLAG;
     flags &= SP_OBJECT_MODIFIED_CASCADE;
 
+    if (flags & SP_OBJECT_STYLE_MODIFIED_FLAG) {
+      SPObject *object = SP_OBJECT(_group);
+      for (SPItemView *v = SP_ITEM(_group)->display; v != NULL; v = v->next) {
+       nr_arena_group_set_style(NR_ARENA_GROUP(v->arenaitem), SP_OBJECT_STYLE(object));
+      }
+    }
+
     GSList *l = g_slist_reverse(_childList(true));
     while (l) {
         child = SP_OBJECT (l->data);
@@ -691,11 +705,14 @@ gchar *CGroup::getDescription() {
 
 NRArenaItem *CGroup::show (NRArena *arena, unsigned int key, unsigned int flags) {
     NRArenaItem *ai;
+    SPObject *object = SP_OBJECT(_group);
 
     ai = NRArenaGroup::create(arena);
+
     nr_arena_group_set_transparent(NR_ARENA_GROUP (ai),
                                    _group->effectiveLayerMode(key) ==
                          SPGroup::LAYER);
+    nr_arena_group_set_style(NR_ARENA_GROUP(ai), SP_OBJECT_STYLE(object));
 
     _showChildren(arena, ai, key, flags);
     return ai;