[gimp] Use gimp_item_tree_rename_item() also when undoing an item rename



commit 2034a3676cee2181cfc6599f7319598b98fa6bf9
Author: Michael Natterer <mitch gimp org>
Date:   Sun Feb 7 15:56:53 2010 +0100

    Use gimp_item_tree_rename_item() also when undoing an item rename
    
    so all item renaming goes through GimpItemTree API. Add "push_undo"
    parameter to gimp_item_tree_rename_item().

 app/core/gimpitem.c         |    2 +-
 app/core/gimpitempropundo.c |    7 ++++++-
 app/core/gimpitemtree.c     |    4 +++-
 app/core/gimpitemtree.h     |    1 +
 4 files changed, 11 insertions(+), 3 deletions(-)
---
diff --git a/app/core/gimpitem.c b/app/core/gimpitem.c
index 321b996..51c5285 100644
--- a/app/core/gimpitem.c
+++ b/app/core/gimpitem.c
@@ -474,7 +474,7 @@ gimp_item_real_rename (GimpItem     *item,
 {
   if (gimp_item_is_attached (item))
     gimp_item_tree_rename_item (gimp_item_get_tree (item), item,
-                                new_name, undo_desc);
+                                new_name, TRUE, undo_desc);
   else
     gimp_object_set_name (GIMP_OBJECT (item), new_name);
 
diff --git a/app/core/gimpitempropundo.c b/app/core/gimpitempropundo.c
index 3f95ecb..9a07905 100644
--- a/app/core/gimpitempropundo.c
+++ b/app/core/gimpitempropundo.c
@@ -238,7 +238,12 @@ gimp_item_prop_undo_pop (GimpUndo            *undo,
         gchar *name;
 
         name = g_strdup (gimp_object_get_name (item));
-        gimp_object_take_name (GIMP_OBJECT (item), item_prop_undo->name);
+
+        gimp_item_tree_rename_item (gimp_item_get_tree (item), item,
+                                    item_prop_undo->name,
+                                    FALSE, NULL);
+
+        g_free (item_prop_undo->name);
         item_prop_undo->name = name;
       }
       break;
diff --git a/app/core/gimpitemtree.c b/app/core/gimpitemtree.c
index bd04236..761b977 100644
--- a/app/core/gimpitemtree.c
+++ b/app/core/gimpitemtree.c
@@ -522,6 +522,7 @@ void
 gimp_item_tree_rename_item (GimpItemTree *tree,
                             GimpItem     *item,
                             const gchar  *new_name,
+                            gboolean      push_undo,
                             const gchar  *undo_desc)
 {
   GimpItemTreePrivate *private;
@@ -537,7 +538,8 @@ gimp_item_tree_rename_item (GimpItemTree *tree,
 
   if (strcmp (new_name, gimp_object_get_name (item)))
     {
-      gimp_image_undo_push_item_rename (item->image, undo_desc, item);
+      if (push_undo)
+        gimp_image_undo_push_item_rename (item->image, undo_desc, item);
 
       gimp_object_set_name (GIMP_OBJECT (item), new_name);
     }
diff --git a/app/core/gimpitemtree.h b/app/core/gimpitemtree.h
index d75e538..4a3cdc2 100644
--- a/app/core/gimpitemtree.h
+++ b/app/core/gimpitemtree.h
@@ -78,6 +78,7 @@ gboolean       gimp_item_tree_reorder_item    (GimpItemTree *tree,
 void           gimp_item_tree_rename_item     (GimpItemTree *tree,
                                                GimpItem     *item,
                                                const gchar  *new_name,
+                                               gboolean      push_undo,
                                                const gchar  *undo_desc);
 
 



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