summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdel Gadllah <adel.gadllah@gmail.com>2014-02-28 16:38:07 +0100
committerAdel Gadllah <adel.gadllah@gmail.com>2014-02-28 18:26:55 +0100
commit463318ac4c495c789337a00591edfdbe0d57cca0 (patch)
treeeb3b2a1a6a8c5c63c29b27c44b9e6a1f57508ec4
parent3ee63d5a99ea374f262502e6eb82daae14f80e42 (diff)
downloadmutter-463318ac4c495c789337a00591edfdbe0d57cca0.tar.gz
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
-rw-r--r--src/compositor/meta-shaped-texture.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/compositor/meta-shaped-texture.c b/src/compositor/meta-shaped-texture.c
index 67b146e01..082b1b1ae 100644
--- a/src/compositor/meta-shaped-texture.c
+++ b/src/compositor/meta-shaped-texture.c
@@ -32,6 +32,7 @@
#include "meta-texture-tower.h"
#include "meta-shaped-texture-private.h"
+#include "meta-window-actor-private.h"
#include <clutter/clutter.h>
#include <cogl/cogl.h>
@@ -597,8 +598,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