window-actor: Fix unobscured_region handling when computing paint volume

We currently ignore the unobscured region when we have mapped clones in
meta_window_actor_process_damage and meta_window_actor_damage_all but
use it unconditionally when computing the paint volume.

This is wrong. We should ignore it there as well or we will end up with
empty clones if the cloned window is completly obscured
(like the tray icons in gnome-shell).

https://bugzilla.gnome.org/show_bug.cgi?id=721596
This commit is contained in:
Adel Gadllah 2014-01-31 15:15:16 +01:00
parent 52c24c5c71
commit a285bbbd14

View File

@ -687,7 +687,7 @@ meta_window_actor_get_paint_volume (ClutterActor *actor,
gdk_rectangle_union (&bounds, &shadow_bounds, &bounds); gdk_rectangle_union (&bounds, &shadow_bounds, &bounds);
} }
if (priv->unobscured_region) if (priv->unobscured_region && !clutter_actor_has_mapped_clones (actor))
{ {
cairo_rectangle_int_t unobscured_bounds; cairo_rectangle_int_t unobscured_bounds;
cairo_region_get_extents (priv->unobscured_region, &unobscured_bounds); cairo_region_get_extents (priv->unobscured_region, &unobscured_bounds);