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
This commit is contained in:
Emmanuele Bassi 2014-09-15 16:50:33 +01:00
parent acd8f86570
commit 14da1c5027

View File

@ -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);