From 1ccf09a28a5ebc5f5c225dd3f58e54b822e384b9 Mon Sep 17 00:00:00 2001 From: Martin Duquesnoy Date: Wed, 15 Feb 2012 19:17:54 +0100 Subject: [PATCH] Revert unmap event handling try --- src/event.c | 23 ++++++++++------------- src/ewmh.c | 1 + 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/src/event.c b/src/event.c index 3fded6f..fe165e9 100644 --- a/src/event.c +++ b/src/event.c @@ -316,21 +316,18 @@ event_unmapnotify(XEvent *e) struct client *c; struct _systray *s; - if((c = client_gb_win(ev->window))) + if((c = client_gb_win(ev->window)) + && ev->send_event + && ev->event == W->root) { - if(!ev->send_event) - { - int d; - unsigned char *ret = NULL; + int d; + 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 - client_unmap(c); + 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))) { diff --git a/src/ewmh.c b/src/ewmh.c index af7d03b..b483a45 100644 --- a/src/ewmh.c +++ b/src/ewmh.c @@ -215,6 +215,7 @@ ewmh_manage_state(long data[], struct client *c) else { c->flags &= ~CLIENT_FULLSCREEN; + XChangeProperty(W->dpy, c->win, W->net_atom[net_wm_state], XA_ATOM, 32, PropModeReplace, (unsigned char*)0, 0); XReparentWindow(W->dpy, c->win, c->frame, c->wgeo.x, c->wgeo.y);