summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Tiefenbruck <mark@fluxbox.org>2007-01-25 15:05:02 -0500
committerAdam Jackson <ajax@benzedrine.nwnk.net>2007-01-25 15:05:02 -0500
commit08c9ac6cbb3405cfa4f0b60d7014c734a1990047 (patch)
tree3175409bde8bc6b0e810df39d6da7d27946104d1
parent1783d3bd50924ab4a74b86bc8b50c631d209071d (diff)
Bug #9762: Fix opacity changes on unmapped windows.
-rw-r--r--xcompmgr.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/xcompmgr.c b/xcompmgr.c
index c5167a0..05f999a 100644
--- a/xcompmgr.c
+++ b/xcompmgr.c
@@ -1165,6 +1165,9 @@ repair_win (Display *dpy, win *w)
w->damaged = 1;
}
+static unsigned int
+get_opacity_prop (Display *dpy, win *w, unsigned int def);
+
static void
map_win (Display *dpy, Window id, unsigned long sequence, Bool fade)
{
@@ -1179,6 +1182,10 @@ map_win (Display *dpy, Window id, unsigned long sequence, Bool fade)
/* This needs to be here or else we lose transparency messages */
XSelectInput (dpy, id, PropertyChangeMask);
+ /* This needs to be here since we don't get PropertyNotify when unmapped */
+ w->opacity = get_opacity_prop (dpy, w, OPAQUE);
+ determine_mode (dpy, w);
+
#if CAN_DO_USABLE
w->damage_bounds.x = w->damage_bounds.y = 0;
w->damage_bounds.width = w->damage_bounds.height = 0;
@@ -1467,10 +1474,7 @@ add_win (Display *dpy, Window id, Window prev)
new->borderClip = None;
new->prev_trans = 0;
- /* moved mode setting to one place */
- new->opacity = get_opacity_prop (dpy, new, OPAQUE);
new->windowType = determine_wintype (dpy, new->id);
- determine_mode (dpy, new);
new->next = *p;
*p = new;