summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--src/data.h2
-rw-r--r--src/events.c4
-rw-r--r--src/manage.c3
4 files changed, 14 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 5ad57a5..8604b22 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
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);