summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/xevent.c9
-rw-r--r--src/xwindow.c5
2 files changed, 6 insertions, 8 deletions
diff --git a/src/xevent.c b/src/xevent.c
index 943ba78..8ee062c 100644
--- a/src/xevent.c
+++ b/src/xevent.c
@@ -152,13 +152,8 @@ void vwm_xevent_handle_map_notify(vwm_t *vwm, XMapEvent *ev)
if ((xwin = vwm_xwin_lookup(vwm, ev->window))) {
- /* XXX: in some circumstances (randomly mplayer -fs) it we see an event sequence for a window like:
- * create_notify->map_request (manage)->configure_request->unmap_notify (unmanage)->configure_notify->map_notify (unmanaged!)
- * which unless the window's an override_redirect is incorrect.
- * So implicitly manage the window if it's not managed and !override_redirect, since it's now mapped.
- */
- if (!xwin->managed && !xwin->attrs.override_redirect)
- xwin->managed = vwm_win_manage_xwin(vwm, xwin);
+ if (!xwin->managed && vwm_xwin_should_manage(vwm, xwin))
+ vwm_win_manage_xwin(vwm, xwin);
if (xwin->managed && xwin->managed->mapping) {
VWM_TRACE("swallowed vwm-induced MapNotify");
diff --git a/src/xwindow.c b/src/xwindow.c
index a682e9f..813399b 100644
--- a/src/xwindow.c
+++ b/src/xwindow.c
@@ -188,7 +188,10 @@ vwm_xwindow_t * vwm_xwin_create(vwm_t *vwm, Window win, vwm_grab_mode_t grabbed)
list_add_tail(&xwin->xwindows, &vwm->xwindows); /* created windows are always placed on the top of the stacking order */
- if (!attrs.override_redirect && xwin->client_mapped)
+ VWM_TRACE_WIN(win, "name=\"%s\" override_redirect=%i client_mapped=%i\n",
+ xwin->name, (int)attrs.override_redirect, (int)xwin->client_mapped);
+
+ if (xwin->client_mapped && vwm_xwin_should_manage(vwm, xwin))
vwm_win_manage_xwin(vwm, xwin);
_out_grabbed:
© All Rights Reserved