From c102a87dc4726085fb0f7360a5cf7c575e1fde59 Mon Sep 17 00:00:00 2001 From: Bryce Harrington Date: Thu, 20 Jul 2006 04:03:08 +0000 Subject: marker refactoring work (bzr r1441) --- src/sp-defs.cpp | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) (limited to 'src/sp-defs.cpp') diff --git a/src/sp-defs.cpp b/src/sp-defs.cpp index 95823ee62..cf9f5a28f 100644 --- a/src/sp-defs.cpp +++ b/src/sp-defs.cpp @@ -83,21 +83,14 @@ static void sp_defs_update(SPObject *object, SPCtx *ctx, guint flags) flags &= SP_OBJECT_MODIFIED_CASCADE; - GSList *l = NULL; - for ( SPObject *child = sp_object_first_child(object) ; child != NULL; child = SP_OBJECT_NEXT(child) ) { - g_object_ref(G_OBJECT(child)); - l = g_slist_prepend(l, child); - } - - l = g_slist_reverse(l); - + GSList *l = g_slist_reverse(object->childList(true)); while (l) { SPObject *child = SP_OBJECT(l->data); l = g_slist_remove(l, child); - if (flags || (child->uflags & SP_OBJECT_MODIFIED_FLAG)) { + if (flags || (child->uflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) { child->updateDisplay(ctx, flags); } - g_object_unref(G_OBJECT(child)); + g_object_unref (G_OBJECT (child)); } } -- cgit v1.2.3