[clutter/clutter-1.20] actor: Reset the content box when setting a new content
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [clutter/clutter-1.20] actor: Reset the content box when setting a new content
- Date: Fri, 9 Jan 2015 13:31:39 +0000 (UTC)
commit 35c126709f0066c0dd81cde30d4f776cad3f1177
Author: Emmanuele Bassi <ebassi gnome org>
Date: Sat Dec 13 14:29:30 2014 +0000
actor: Reset the content box when setting a new content
We want to recompute the content box when changing the content instance,
in case the preferred size is different and the content gravity uses the
preferred size; the change of content with different preferred size and
same gravity should also trigger an implicit transition.
https://bugzilla.gnome.org/show_bug.cgi?id=711182
(cherry picked from commit d546c0c121a967ab49773f91119dffe9d0358cdd)
Signed-off-by: Emmanuele Bassi <ebassi gnome org>
clutter/clutter-actor.c | 20 +++++++++++++++++++-
1 files changed, 19 insertions(+), 1 deletions(-)
---
diff --git a/clutter/clutter-actor.c b/clutter/clutter-actor.c
index 01c33cb..8663a6d 100644
--- a/clutter/clutter-actor.c
+++ b/clutter/clutter-actor.c
@@ -19533,7 +19533,25 @@ clutter_actor_set_content (ClutterActor *self,
* do.
*/
if (priv->content_gravity != CLUTTER_CONTENT_GRAVITY_RESIZE_FILL)
- g_object_notify_by_pspec (G_OBJECT (self), obj_props[PROP_CONTENT_BOX]);
+ {
+ if (priv->content_box_valid)
+ {
+ ClutterActorBox from_box, to_box;
+
+ clutter_actor_get_content_box (self, &from_box);
+
+ /* invalidate the cached content box */
+ priv->content_box_valid = FALSE;
+ clutter_actor_get_content_box (self, &to_box);
+
+ if (!clutter_actor_box_equal (&from_box, &to_box))
+ _clutter_actor_create_transition (self, obj_props[PROP_CONTENT_BOX],
+ &from_box,
+ &to_box);
+ }
+
+ g_object_notify_by_pspec (G_OBJECT (self), obj_props[PROP_CONTENT_BOX]);
+ }
}
/**
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]