[gimp] When removing a group layer, remove all its children from image->layer_stack



commit 3a0168ee83d012bc90ac4caf3e975ebf62e65427
Author: Michael Natterer <mitch gimp org>
Date:   Thu Aug 27 22:10:36 2009 +0200

    When removing a group layer, remove all its children from image->layer_stack

 app/core/gimpimage.c |   18 ++++++++++++++++++
 1 files changed, 18 insertions(+), 0 deletions(-)
---
diff --git a/app/core/gimpimage.c b/app/core/gimpimage.c
index bdf5040..4280ae0 100644
--- a/app/core/gimpimage.c
+++ b/app/core/gimpimage.c
@@ -3177,6 +3177,24 @@ gimp_image_remove_layer (GimpImage *image,
   gimp_container_remove (container, GIMP_OBJECT (layer));
   image->layer_stack = g_slist_remove (image->layer_stack, layer);
 
+  /*  Also remove all children of a group layer from the layer_stack  */
+  if (gimp_viewable_get_children (GIMP_VIEWABLE (layer)))
+    {
+      GimpContainer *stack = gimp_viewable_get_children (GIMP_VIEWABLE (layer));
+      GList         *children;
+      GList         *list;
+
+      children = gimp_item_stack_get_item_list (GIMP_ITEM_STACK (stack));
+
+      for (list = children; list; list = g_list_next (list))
+        {
+          image->layer_stack = g_slist_remove (image->layer_stack,
+                                               list->data);
+        }
+
+      g_list_free (children);
+    }
+
   if (parent)
     gimp_viewable_set_parent (GIMP_VIEWABLE (layer), NULL);
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]