[gegl] GeglNode: Freeze the GeglOperation when changing properties



commit 5918eeee3002c6187d6ff5f11a0d18f600378030
Author: Debarshi Ray <debarshir gnome org>
Date:   Thu Feb 4 13:00:37 2016 +0100

    GeglNode: Freeze the GeglOperation when changing properties
    
    https://bugzilla.gnome.org/show_bug.cgi?id=761547

 gegl/graph/gegl-node.c |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)
---
diff --git a/gegl/graph/gegl-node.c b/gegl/graph/gegl-node.c
index c4f778d..28fc738 100644
--- a/gegl/graph/gegl-node.c
+++ b/gegl/graph/gegl-node.c
@@ -1337,6 +1337,9 @@ gegl_node_set_valist (GeglNode    *self,
 
   g_object_freeze_notify (G_OBJECT (self));
 
+  if (self->operation)
+    g_object_freeze_notify (G_OBJECT (self->operation));
+
   property_name = first_property_name;
   while (property_name)
     {
@@ -1348,9 +1351,16 @@ gegl_node_set_valist (GeglNode    *self,
           op_class          = va_arg (var_args, gchar *);
           op_first_property = va_arg (var_args, gchar *);
 
+          if (self->operation)
+            g_object_thaw_notify (G_OBJECT (self->operation));
+
           /* pass the following properties as construction properties
            * to the operation */
           gegl_node_set_op_class (self, op_class, op_first_property, var_args);
+
+          if (self->operation)
+            g_object_freeze_notify (G_OBJECT (self->operation));
+
           break;
         }
       else
@@ -1400,6 +1410,9 @@ gegl_node_set_valist (GeglNode    *self,
       property_name = va_arg (var_args, gchar *);
     }
 
+  if (self->operation)
+    g_object_thaw_notify (G_OBJECT (self->operation));
+
   g_object_thaw_notify (G_OBJECT (self));
 }
 


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