metacity r3692 - in trunk: . src/core



Author: tthurman
Date: Tue Apr 22 13:34:48 2008
New Revision: 3692
URL: http://svn.gnome.org/viewvc/metacity?rev=3692&view=rev

Log:
2008-04-22  Carlos Garnacho  <carlos imendio com>

        * src/core/compositor.c (process_property_notify,
        find_window_in_display): Propagate opacity to frame window.



Modified:
   trunk/ChangeLog
   trunk/src/core/compositor.c

Modified: trunk/src/core/compositor.c
==============================================================================
--- trunk/src/core/compositor.c	(original)
+++ trunk/src/core/compositor.c	Tue Apr 22 13:34:48 2008
@@ -645,6 +645,24 @@
   return NULL;
 }
 
+static MetaCompWindow *
+find_window_for_child_window_in_display (MetaDisplay *display,
+                                         Window       xwindow)
+{
+  Window ignored1, *ignored2;
+  Window parent;
+  guint ignored_children;
+
+  XQueryTree (display->xdisplay,
+              xwindow, &ignored1, &parent,
+              &ignored2, &ignored_children);
+
+  if (parent != None)
+    return find_window_in_display (display, parent);
+
+  return NULL;
+}
+
 static Picture
 solid_picture (MetaDisplay *display,
                MetaScreen  *screen,
@@ -2117,7 +2135,15 @@
       MetaCompWindow *cw = find_window_in_display (display, event->window);
       gulong value;
 
-      if (!cw) 
+      if (!cw)
+        {
+          /* Applications can set this property for their toplevel windows, so
+           * this must be propagated to the window managed by the compositor
+           */
+          cw = find_window_for_child_window_in_display (display, event->window);
+        }
+
+      if (!cw)
         return;
 
       if (meta_prop_get_cardinal (display, event->window,



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