Propagate opacity to frame window.

2008-04-22  Carlos Garnacho  <carlos@imendio.com>

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


svn path=/trunk/; revision=3692
This commit is contained in:
Carlos Garnacho 2008-04-22 13:34:48 +00:00 committed by Thomas James Alexander Thurman
parent 3d9f2868fc
commit fa1195b7f1
2 changed files with 32 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2008-04-22 Carlos Garnacho <carlos@imendio.com>
* src/core/compositor.c (process_property_notify,
find_window_in_display): Propagate opacity to frame window.
2008-04-22 Thomas Thurman <tthurman@gnome.org> 2008-04-22 Thomas Thurman <tthurman@gnome.org>
* configure.in: Post-release bump to 2.23.13. * configure.in: Post-release bump to 2.23.13.

View File

@ -645,6 +645,24 @@ find_window_in_display (MetaDisplay *display,
return NULL; 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 static Picture
solid_picture (MetaDisplay *display, solid_picture (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
@ -2117,6 +2135,14 @@ process_property_notify (MetaCompositor *compositor,
MetaCompWindow *cw = find_window_in_display (display, event->window); MetaCompWindow *cw = find_window_in_display (display, event->window);
gulong value; gulong value;
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) if (!cw)
return; return;