From d41fba6558c8964d6118e131544adb7b650f6e3e Mon Sep 17 00:00:00 2001 From: Adel Gadllah Date: Fri, 28 Feb 2014 16:38:07 +0100 Subject: [PATCH] meta-shaped-texture: Check if the parent has mapped clones as well When the WindowActor has mapped clones we should ignore the unobscured region as well, so we need to walk up and check it as well. https://bugzilla.gnome.org/show_bug.cgi?id=725180 --- src/compositor/meta-shaped-texture.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/compositor/meta-shaped-texture.c b/src/compositor/meta-shaped-texture.c index 30697ee6a..bbcf0f9ce 100644 --- a/src/compositor/meta-shaped-texture.c +++ b/src/compositor/meta-shaped-texture.c @@ -33,6 +33,7 @@ #include "meta-texture-tower.h" #include "meta-shaped-texture-private.h" +#include "meta-window-actor-private.h" #include #include @@ -576,8 +577,18 @@ static cairo_region_t * effective_unobscured_region (MetaShapedTexture *self) { MetaShapedTexturePrivate *priv = self->priv; + ClutterActor *parent = clutter_actor_get_parent (CLUTTER_ACTOR (self)); - return clutter_actor_has_mapped_clones (CLUTTER_ACTOR (self)) ? NULL : priv->unobscured_region; + if (clutter_actor_has_mapped_clones (CLUTTER_ACTOR (self))) + return NULL; + + while (parent && !META_IS_WINDOW_ACTOR (parent)) + parent = clutter_actor_get_parent (parent); + + if (parent && clutter_actor_has_mapped_clones (parent)) + return NULL; + + return priv->unobscured_region; } gboolean