[clutter] Bind constraints: Don't force redraws on source relayout



commit 0d0248b31f00d08ed4d5ca334fd9f93a7c6d5eab
Author: Owen W. Taylor <otaylor fishsoup net>
Date:   Fri Nov 22 10:30:21 2013 -0500

    Bind constraints: Don't force redraws on source relayout
    
    When the source actor potentially changes size, that shouldn't
    necessarily result in the target actor being redrawn - it should
    be like when a child of a container is reallocated due to changes
    in its siblings or parent - it should redraw only to the extent
    that it is moved and resized. Privately export an internal function
    from clutter-actor.c to allow getting this right.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=719367
    
    Conflicts:
        clutter/clutter-actor.c

 clutter/clutter-actor-private.h   |    1 +
 clutter/clutter-actor.c           |    4 +---
 clutter/clutter-bind-constraint.c |    2 +-
 clutter/clutter-snap-constraint.c |    2 +-
 4 files changed, 4 insertions(+), 5 deletions(-)
---
diff --git a/clutter/clutter-actor-private.h b/clutter/clutter-actor-private.h
index 32388df..b00f2f7 100644
--- a/clutter/clutter-actor-private.h
+++ b/clutter/clutter-actor-private.h
@@ -309,6 +309,7 @@ void                            _clutter_actor_detach_clone
                                                                                          ClutterActor 
*clone);
 void                            _clutter_actor_queue_redraw_on_clones                   (ClutterActor 
*actor);
 void                            _clutter_actor_queue_relayout_on_clones                 (ClutterActor 
*actor);
+void                            _clutter_actor_queue_only_relayout                      (ClutterActor 
*actor);
 
 G_END_DECLS
 
diff --git a/clutter/clutter-actor.c b/clutter/clutter-actor.c
index cea7e9a..035c103 100644
--- a/clutter/clutter-actor.c
+++ b/clutter/clutter-actor.c
@@ -998,8 +998,6 @@ static void clutter_actor_update_map_state       (ClutterActor  *self,
                                                   MapStateChange change);
 static void clutter_actor_unrealize_not_hiding   (ClutterActor *self);
 
-static void _clutter_actor_queue_only_relayout (ClutterActor *self);
-
 static void _clutter_actor_get_relative_transformation_matrix (ClutterActor *self,
                                                                ClutterActor *ancestor,
                                                                CoglMatrix *matrix);
@@ -7888,7 +7886,7 @@ _clutter_actor_queue_redraw_with_clip (ClutterActor       *self,
                                     NULL /* effect */);
 }
 
-static void
+void
 _clutter_actor_queue_only_relayout (ClutterActor *self)
 {
   ClutterActorPrivate *priv = self->priv;
diff --git a/clutter/clutter-bind-constraint.c b/clutter/clutter-bind-constraint.c
index 3de8642..e711385 100644
--- a/clutter/clutter-bind-constraint.c
+++ b/clutter/clutter-bind-constraint.c
@@ -151,7 +151,7 @@ source_queue_relayout (ClutterActor          *source,
                        ClutterBindConstraint *bind)
 {
   if (bind->actor != NULL)
-    clutter_actor_queue_relayout (bind->actor);
+    _clutter_actor_queue_only_relayout (bind->actor);
 }
 
 static void
diff --git a/clutter/clutter-snap-constraint.c b/clutter/clutter-snap-constraint.c
index 8a7c639..0e624c1 100644
--- a/clutter/clutter-snap-constraint.c
+++ b/clutter/clutter-snap-constraint.c
@@ -94,7 +94,7 @@ source_queue_relayout (ClutterActor          *source,
                        ClutterSnapConstraint *constraint)
 {
   if (constraint->actor != NULL)
-    clutter_actor_queue_relayout (constraint->actor);
+    _clutter_actor_queue_only_relayout (constraint->actor);
 }
 
 static void


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