summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@gnome.org>2014-09-15 16:50:33 +0100
committerEmmanuele Bassi <ebassi@gnome.org>2014-09-15 16:53:31 +0100
commit14da1c50270f1a3a8b2cb8c95d35e87bc9a31558 (patch)
treef6da356c7402ff6108e02b621e7769fedf38ee09
parentacd8f8657013de63ca45294ded48ec531bc7fd64 (diff)
downloadclutter-14da1c50270f1a3a8b2cb8c95d35e87bc9a31558.tar.gz
actor: Unallocated children do not contribute to the paint volume
Just like unmapped children. Apparently, layers above Clutter allow mapped children without an allocation, instead of unmapping them. This means we need to ignore them when computing the paint volume. Patch originally by: Adel Gadllah <adel.gadllah@gmail.com> Signed-off by: Emmanuele Bassi <ebassi@gnome.org> https://bugzilla.gnome.org/show_bug.cgi?id=736682
-rw-r--r--clutter/clutter-actor.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/clutter/clutter-actor.c b/clutter/clutter-actor.c
index c6813dd5f..73dda5c86 100644
--- a/clutter/clutter-actor.c
+++ b/clutter/clutter-actor.c
@@ -6027,7 +6027,13 @@ clutter_actor_update_default_paint_volume (ClutterActor *self,
{
const ClutterPaintVolume *child_volume;
- if (!CLUTTER_ACTOR_IS_MAPPED (child))
+ /* we ignore unmapped children, since they won't be painted.
+ *
+ * XXX: we also have to ignore mapped children without a valid
+ * allocation, because apparently some code above Clutter allows
+ * them.
+ */
+ if (!CLUTTER_ACTOR_IS_MAPPED (child) || !clutter_actor_has_allocation (child))
continue;
child_volume = clutter_actor_get_transformed_paint_volume (child, self);