Blob Blame History Raw
From 3d2e4a636bf7144939fa28ad04d14ea2242c8c61 Mon Sep 17 00:00:00 2001
From: "Jasper St. Pierre" <jstpierre@mecheye.net>
Date: Thu, 7 Jun 2012 23:31:21 -0400
Subject: [PATCH] meta-window-actor: Don't unredirect shaped windows

If a window has its BoundingRegion shaped, we shouldn't unredirect it,
as it expects the rest of the windows from being shown under it. This
prevents applications like the Skype screen recorder or gtkRecordMyDesktop
which want to show a "border" around the recorded area from being
unredirected, giving the appearance of making the desktop freeze.

https://bugzilla.gnome.org/show_bug.cgi?id=677657
---
 src/compositor/meta-window-actor.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/compositor/meta-window-actor.c b/src/compositor/meta-window-actor.c
index 2633372..b8e862b 100644
--- a/src/compositor/meta-window-actor.c
+++ b/src/compositor/meta-window-actor.c
@@ -1220,7 +1220,10 @@ meta_window_actor_should_unredirect (MetaWindowActor *self)
   MetaScreen *screen = meta_window_get_screen (metaWindow);
   MetaWindowActorPrivate *priv = self->priv;
 
-  if (meta_window_is_override_redirect (metaWindow) && priv->opacity == 0xff && !priv->argb32)
+  if (meta_window_is_override_redirect (metaWindow) &&
+      priv->opacity == 0xff &&
+      !priv->argb32 &&
+      !metaWindow->has_shape)
     {
       int screen_width, screen_height;
       MetaRectangle window_rect;
-- 
1.8.0