Bug #9762: Fix opacity changes on unmapped windows.
This commit is contained in:
parent
1783d3bd50
commit
08c9ac6cbb
10
xcompmgr.c
10
xcompmgr.c
|
@ -1165,6 +1165,9 @@ repair_win (Display *dpy, win *w)
|
||||||
w->damaged = 1;
|
w->damaged = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static unsigned int
|
||||||
|
get_opacity_prop (Display *dpy, win *w, unsigned int def);
|
||||||
|
|
||||||
static void
|
static void
|
||||||
map_win (Display *dpy, Window id, unsigned long sequence, Bool fade)
|
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 */
|
/* This needs to be here or else we lose transparency messages */
|
||||||
XSelectInput (dpy, id, PropertyChangeMask);
|
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
|
#if CAN_DO_USABLE
|
||||||
w->damage_bounds.x = w->damage_bounds.y = 0;
|
w->damage_bounds.x = w->damage_bounds.y = 0;
|
||||||
w->damage_bounds.width = w->damage_bounds.height = 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->borderClip = None;
|
||||||
new->prev_trans = 0;
|
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);
|
new->windowType = determine_wintype (dpy, new->id);
|
||||||
determine_mode (dpy, new);
|
|
||||||
|
|
||||||
new->next = *p;
|
new->next = *p;
|
||||||
*p = new;
|
*p = new;
|
||||||
|
|
Loading…
Reference in New Issue