[mutter/wayland] meta-shaped-texture: Check if the parent has mapped clones as well



commit d41fba6558c8964d6118e131544adb7b650f6e3e
Author: Adel Gadllah <adel gadllah gmail com>
Date:   Fri Feb 28 16:38:07 2014 +0100

    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 files changed, 12 insertions(+), 1 deletions(-)
---
diff --git a/src/compositor/meta-shaped-texture.c b/src/compositor/meta-shaped-texture.c
index 30697ee..bbcf0f9 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 <clutter/clutter.h>
 #include <cogl/cogl.h>
@@ -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


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]