t* dwm + patches URI git clone git://git.codevoid.de/dwm-sdk DIR Log DIR Files DIR Refs DIR README DIR LICENSE --- DIR commit 3a392b855882786d1aa9c842d1c36b5c1cbc576a DIR parent 92fe06b501a5458a6aecdcc53f8d35c2a1f55c1c URI Author: garbeam@gmail.com <unknown> Date: Sat, 25 Jun 2011 09:07:28 +0100 making enternotify less focus hungry Diffstat: M BUGS | 21 --------------------- M dwm.c | 4 ++++ 2 files changed, 4 insertions(+), 21 deletions(-) --- DIR diff --git a/BUGS b/BUGS t@@ -8,27 +8,6 @@ reproducible with xrandr -s but not with --output and --mode, strange --- -> enternotify is handled even when the entered window is already focused -> (eg moving the mouse to the bar and back, scrolling on the border..) -> -> focusing might be expensive for some clients (eg dim/light up) -> -> a possible solution is to modify enternotify: -> -> + c = wintoclient(ev->window); -> if((m = wintomon(ev->window)) && m != selmon) { -> unfocus(selmon->sel); -> selmon = m; -> } -> + else if (c == selmon->sel || c == NULL) -> + return; - ---- - -dmenu appears on the monitor where the pointer is and not on selmon - ---- - yet another corner case: open a terminal, focus another monitor, but without moving the mouse pointer there DIR diff --git a/dwm.c b/dwm.c t@@ -820,15 +820,19 @@ drawtext(const char *text, unsigned long col[ColLast], Bool invert) { void enternotify(XEvent *e) { + Client *c; Monitor *m; XCrossingEvent *ev = &e->xcrossing; if((ev->mode != NotifyNormal || ev->detail == NotifyInferior) && ev->window != root) return; + c = wintoclient(ev->window); if((m = wintomon(ev->window)) && m != selmon) { unfocus(selmon->sel, True); selmon = m; } + else if(c == selmon->sel || c == NULL) + return; focus((wintoclient(ev->window))); }