diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | src/data.h | 2 | ||||
-rw-r--r-- | src/events.c | 4 | ||||
-rw-r--r-- | src/manage.c | 3 |
4 files changed, 14 insertions, 3 deletions
@@ -1,3 +1,11 @@ +2001-06-05 shawn <sabetts@diggin.lamenet.tmp> + + * src/manage.c (hide_window): ignore only StructureNotify events. + + * src/data.h (WIN_EVENTS): Add StructureNotifyMask. + + * src/events.c (unmap_notify): ignore SubstructureNotify unmaps. + 2001-06-02 shawn <sabetts@diggin.lamenet.tmp> * src/split.c (blank_frame): hide transient's transient_for. @@ -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); |