summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsabetts <sabetts>2001-06-05 09:07:18 +0000
committersabetts <sabetts>2001-06-05 09:07:18 +0000
commit622ea708ef80c3044838f32837254c6f74fe793e (patch)
tree624967ce6f5b866d64a9bcbfab888ceb160d63ba /src
parentb491c9ed23c5f1345914d0ffb2cbaea9662d1d61 (diff)
downloadratpoison-622ea708ef80c3044838f32837254c6f74fe793e.zip
* src/manage.c (hide_window): ignore only StructureNotify events.
* src/data.h (WIN_EVENTS): Add StructureNotifyMask. * src/events.c (unmap_notify): ignore SubstructureNotify unmaps.
Diffstat (limited to 'src')
-rw-r--r--src/data.h2
-rw-r--r--src/events.c4
-rw-r--r--src/manage.c3
3 files changed, 6 insertions, 3 deletions
diff --git a/src/data.h b/src/data.h
index 9d1ec32..5f97c99 100644
--- a/src/data.h
+++ b/src/data.h
@@ -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);