[gimp] app: don't emit useless "name-changed" signals from GimpObject



commit eb5bdebe6a4cb8e316a9da1e5505966aea171a29
Author: Michael Natterer <mitch gimp org>
Date:   Tue Aug 25 18:39:17 2015 +0200

    app: don't emit useless "name-changed" signals from GimpObject
    
    if the same name is set via gimp_object_set_static_name() or
    gimp_object_take_name() (gimp_object_set_name() and
    gimp_object_set_name_safe() already had the check).
    
    Since this is a slight behavior change it might have subtle side
    effects; it definitely fixes GimpThumbBox thumbnail state to not
    always re-create the thumbnail on click, which was happening since
    porting to GFile (which switched from gimp_object_set_name() to
    gimp_object_take_name()).

 app/core/gimpobject.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)
---
diff --git a/app/core/gimpobject.c b/app/core/gimpobject.c
index 6cfdb4d..b8f3d92 100644
--- a/app/core/gimpobject.c
+++ b/app/core/gimpobject.c
@@ -289,6 +289,9 @@ gimp_object_set_static_name (GimpObject  *object,
 {
   g_return_if_fail (GIMP_IS_OBJECT (object));
 
+  if (! g_strcmp0 (object->p->name, name))
+    return;
+
   gimp_object_name_free (object);
 
   object->p->name = (gchar *) name;
@@ -304,6 +307,12 @@ gimp_object_take_name (GimpObject *object,
 {
   g_return_if_fail (GIMP_IS_OBJECT (object));
 
+  if (! g_strcmp0 (object->p->name, name))
+    {
+      g_free (name);
+      return;
+    }
+
   gimp_object_name_free (object);
 
   object->p->name = name;


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