summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/sp-use.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/sp-use.cpp b/src/sp-use.cpp
index 31bee3717..ae4e9f61a 100644
--- a/src/sp-use.cpp
+++ b/src/sp-use.cpp
@@ -333,6 +333,7 @@ sp_use_show(SPItem *item, NRArena *arena, unsigned key, unsigned flags)
NRArenaItem *ai = NRArenaGroup::create(arena);
nr_arena_group_set_transparent(NR_ARENA_GROUP(ai), FALSE);
+ nr_arena_group_set_style(NR_ARENA_GROUP(ai), SP_OBJECT_STYLE(item));
if (use->child) {
NRArenaItem *ac = sp_item_invoke_show(SP_ITEM(use->child), arena, key, flags);
@@ -566,6 +567,12 @@ sp_use_update(SPObject *object, SPCtx *ctx, unsigned 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) {
+ for (SPItemView *v = SP_ITEM(object)->display; v != NULL; v = v->next) {
+ nr_arena_group_set_style(NR_ARENA_GROUP(v->arenaitem), SP_OBJECT_STYLE(object));
+ }
+ }
+
/* Set up child viewport */
if (use->x.unit == SVGLength::PERCENT) {
use->x.computed = use->x.value * (ictx->vp.x1 - ictx->vp.x0);
@@ -619,6 +626,12 @@ sp_use_modified(SPObject *object, guint flags)
}
flags &= SP_OBJECT_MODIFIED_CASCADE;
+ if (flags & SP_OBJECT_STYLE_MODIFIED_FLAG) {
+ for (SPItemView *v = SP_ITEM(object)->display; v != NULL; v = v->next) {
+ nr_arena_group_set_style(NR_ARENA_GROUP(v->arenaitem), SP_OBJECT_STYLE(object));
+ }
+ }
+
SPObject *child = use_obj->child;
if (child) {
g_object_ref(G_OBJECT(child));