[gimp] When removing a group layer, remove all its children from image->layer_stack
- From: Michael Natterer <mitch src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gimp] When removing a group layer, remove all its children from image->layer_stack
- Date: Thu, 27 Aug 2009 20:11:36 +0000 (UTC)
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]