From 841a2574a1ab2bb18cbc7c632ba4304b19cc9408 Mon Sep 17 00:00:00 2001 From: Marco Peereboom Date: Sat, 24 Oct 2009 14:21:18 +0000 Subject: [PATCH] Make enternotify prettier --- scrotwm.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/scrotwm.c b/scrotwm.c index c0a6a9d..bbd0f4b 100644 --- a/scrotwm.c +++ b/scrotwm.c @@ -3941,8 +3941,10 @@ enternotify(XEvent *e) XEvent cne; struct ws_win *win; - DNPRINTF(SWM_D_EVENT, "enternotify: window: %lu mode %d detail %d\n", - ev->window, ev->mode, ev->detail); + DNPRINTF(SWM_D_FOCUS, "enternotify: window: %lu mode %d detail %d root " + "%lu subwindow %lu same_screen %d focus %d state %d\n", + ev->window, ev->mode, ev->detail, ev->root, ev->subwindow, + ev->same_screen, ev->focus, ev->state); /* * all these checks need to be in this order because the @@ -3952,11 +3954,21 @@ enternotify(XEvent *e) * feature */ + /* + * state is set when we are switching workspaces and focus is set when + * scrotwm launches via a restart + */ + if (ev->state || ev->focus) + return; /* * happens when a window is created or destroyed and the border * crosses the mouse pointer and when switching ws + * + * we need the subwindow test to see if we came from root in order + * to give focus to floaters */ - if (ev->mode == NotifyNormal && ev->detail == NotifyVirtual) + if (ev->mode == NotifyNormal && ev->detail == NotifyVirtual && + ev->subwindow == 0) return; /* this window already has focus */ -- 2.39.2