diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/data.h | 2 | ||||
-rw-r--r-- | src/events.c | 4 | ||||
-rw-r--r-- | src/manage.c | 3 |
3 files changed, 6 insertions, 3 deletions
@@ -28,7 +28,7 @@ #define FONT_HEIGHT(f) ((f)->max_bounds.ascent + (f)->max_bounds.descent) -#define WIN_EVENTS (PropertyChangeMask | ColormapChangeMask | FocusChangeMask) +#define WIN_EVENTS (StructureNotifyMask | PropertyChangeMask | ColormapChangeMask | FocusChangeMask) typedef struct rp_window rp_window; typedef struct screen_info screen_info; diff --git a/src/events.c b/src/events.c index 824b98e..ac9d006 100644 --- a/src/events.c +++ b/src/events.c @@ -91,6 +91,10 @@ unmap_notify (XEvent *ev) screen_info *s; rp_window *win; + /* ignore SubstructureNotify unmaps. */ + if(ev->xunmap.event != ev->xunmap.window + && ev->xunmap.send_event != True) return; + s = find_screen (ev->xunmap.event); /* FIXME: Should we only look in the mapped window list? */ diff --git a/src/manage.c b/src/manage.c index 8a7effc..030693c 100644 --- a/src/manage.c +++ b/src/manage.c @@ -501,8 +501,7 @@ hide_window (rp_window *win) if (win == NULL) return; /* Ignore the unmap_notify event. */ - XSelectInput(dpy, win->w, - WIN_EVENTS&~(StructureNotifyMask|EnterWindowMask)); + XSelectInput(dpy, win->w, WIN_EVENTS&~(StructureNotifyMask)); XUnmapWindow (dpy, win->w); XSelectInput (dpy, win->w, WIN_EVENTS); set_state (win, IconicState); |