summaryrefslogtreecommitdiff
path: root/src
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 /src
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
Diffstat (limited to 'src')
-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