[clutter] actor: Ensure static scope to allocation-changed arguments



commit 155f7741fed2138d64ec0b06d8ec160c67ca12b3
Author: Emmanuele Bassi <ebassi linux intel com>
Date:   Mon Mar 5 21:59:53 2012 +0000

    actor: Ensure static scope to allocation-changed arguments
    
    In theory, handlers connected to the ::allocation-changed signal may be
    able to modify the actor's real allocation and allocation flags,
    especially now that we use STATIC_SCOPE; let's avoid this, so that we
    don't regret it later.

 clutter/clutter-actor.c |   22 ++++++++++++++++------
 1 files changed, 16 insertions(+), 6 deletions(-)
---
diff --git a/clutter/clutter-actor.c b/clutter/clutter-actor.c
index f84d7cf..bd39d47 100644
--- a/clutter/clutter-actor.c
+++ b/clutter/clutter-actor.c
@@ -2113,9 +2113,14 @@ clutter_actor_real_allocate (ClutterActor           *self,
   clutter_actor_maybe_layout_children (self, box, flags);
 
   if (changed)
-    g_signal_emit (self, actor_signals[ALLOCATION_CHANGED], 0,
-                   &priv->allocation,
-                   priv->allocation_flags);
+    {
+      ClutterActorBox signal_box = priv->allocation;
+      ClutterAllocationFlags signal_flags = priv->allocation_flags;
+
+      g_signal_emit (self, actor_signals[ALLOCATION_CHANGED], 0,
+                     &signal_box,
+                     signal_flags);
+    }
 
   g_object_thaw_notify (G_OBJECT (self));
 }
@@ -7981,9 +7986,14 @@ clutter_actor_set_allocation (ClutterActor           *self,
   clutter_actor_maybe_layout_children (self, box, flags);
 
   if (changed)
-    g_signal_emit (self, actor_signals[ALLOCATION_CHANGED], 0,
-                   &priv->allocation,
-                   priv->allocation_flags);
+    {
+      ClutterActorBox signal_box = priv->allocation;
+      ClutterAllocationFlags signal_flags = priv->allocation_flags;
+
+      g_signal_emit (self, actor_signals[ALLOCATION_CHANGED], 0,
+                     &signal_box,
+                     signal_flags);
+    }
 
   g_object_thaw_notify (G_OBJECT (self));
 }



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