diff options
author | Carlos Garnacho <carlos@imendio.com> | 2008-04-22 13:34:48 +0000 |
---|---|---|
committer | Thomas James Alexander Thurman <tthurman@src.gnome.org> | 2008-04-22 13:34:48 +0000 |
commit | fa1195b7f103a9107238d66250810baeb6ff1413 (patch) | |
tree | e7c39cddedb136a34642bebbad6251d4f7736be4 | |
parent | 3d9f2868fcf480f793418203454b959eb7fd39ba (diff) | |
download | metacity-fa1195b7f103a9107238d66250810baeb6ff1413.tar.gz |
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
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | src/core/compositor.c | 28 |
2 files changed, 32 insertions, 1 deletions
@@ -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> * configure.in: Post-release bump to 2.23.13. diff --git a/src/core/compositor.c b/src/core/compositor.c index c37a7818..4c44a6f0 100644 --- a/src/core/compositor.c +++ b/src/core/compositor.c @@ -645,6 +645,24 @@ find_window_in_display (MetaDisplay *display, 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 @@ process_property_notify (MetaCompositor *compositor, 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, |