Try checking wm_state in unmap event
This commit is contained in:
parent
79f0b02575
commit
6d962bbbc3
19
src/event.c
19
src/event.c
@ -163,9 +163,9 @@ event_configureevent(XEvent *e)
|
|||||||
if(c->flags & CLIENT_FREE)
|
if(c->flags & CLIENT_FREE)
|
||||||
{
|
{
|
||||||
if(ev->value_mask & CWX)
|
if(ev->value_mask & CWX)
|
||||||
c->geo.x = ev->x - c->border;
|
c->geo.x = ev->x;
|
||||||
if(ev->value_mask & CWY)
|
if(ev->value_mask & CWY)
|
||||||
c->geo.y = ev->y - c->tbarw;
|
c->geo.y = ev->y - c->tbarw - c->border - c->border;
|
||||||
if(ev->value_mask & CWWidth)
|
if(ev->value_mask & CWWidth)
|
||||||
c->geo.w = ev->width + c->border + c->border;
|
c->geo.w = ev->width + c->border + c->border;
|
||||||
if(ev->value_mask & CWHeight)
|
if(ev->value_mask & CWHeight)
|
||||||
@ -311,10 +311,17 @@ event_unmapnotify(XEvent *e)
|
|||||||
|
|
||||||
if((c = client_gb_win(ev->window))
|
if((c = client_gb_win(ev->window))
|
||||||
&& ev->send_event
|
&& ev->send_event
|
||||||
&& ev->event == W->root
|
&& ev->event == W->root)
|
||||||
&& c->flags & CLIENT_MAPPED
|
{
|
||||||
&& !(c->flags & CLIENT_DYING))
|
int d;
|
||||||
client_remove(c);
|
unsigned char *ret = NULL;
|
||||||
|
|
||||||
|
if(XGetWindowProperty(EVDPY(e), c->win, W->net_atom[wm_state], 0, 2,
|
||||||
|
False, W->net_atom[wm_state], (Atom*)&d, &d,
|
||||||
|
(long unsigned int*)&d, (long unsigned int*)&d, &ret) == Success)
|
||||||
|
if(*ret == NormalState)
|
||||||
|
client_remove(c);
|
||||||
|
}
|
||||||
else if((s = systray_find(ev->window)))
|
else if((s = systray_find(ev->window)))
|
||||||
{
|
{
|
||||||
systray_del(s);
|
systray_del(s);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user