diff options
| author | Dana Jansens <danakj@orodu.net> | 2011-10-14 17:39:24 -0400 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2011-10-16 18:51:51 -0400 |
| commit | aa15563feeee03d7748e7d5279decf60db23fda9 (patch) | |
| tree | 03b1dc8b64c79546fdac408ede2c40f2918f88e9 /openbox/client.c | |
| parent | fd9bb43059a4e106bfa07babb0eb2f93146e49b2 (diff) | |
Propagate _NET_WM_WINDOW_OPACITY to the frame window (bug #5132)
Diffstat (limited to 'openbox/client.c')
| -rw-r--r-- | openbox/client.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/openbox/client.c b/openbox/client.c index e4d85344..c9cd0763 100644 --- a/openbox/client.c +++ b/openbox/client.c @@ -256,6 +256,10 @@ void client_manage(Window window, ObPrompt *prompt) /* the session should get the last say though */ client_restore_session_state(self); + /* this needs to occur once we have a frame, since it sets a property on + the frame */ + client_update_opacity(self); + /* don't put helper/modal windows on a different desktop if they are related to the focused window. */ if (!screen_compare_desktops(self->desktop, screen_desktop) && @@ -1665,6 +1669,16 @@ void client_update_colormap(ObClient *self, Colormap colormap) self->colormap = colormap; } +void client_update_opacity(ObClient *self) +{ + guint32 o; + + if (OBT_PROP_GET32(self->window, NET_WM_WINDOW_OPACITY, CARDINAL, &o)) + OBT_PROP_SET32(self->frame->window, NET_WM_WINDOW_OPACITY, CARDINAL, o); + else + OBT_PROP_ERASE(self->frame->window, NET_WM_WINDOW_OPACITY); +} + void client_update_normal_hints(ObClient *self) { XSizeHints size; |
