applied sumik's multihead patch - dwm - dynamic window manager (HTM) git clone https://git.parazyd.org/dwm (DIR) Log (DIR) Files (DIR) Refs (DIR) README (DIR) LICENSE --- (DIR) commit fde45ebed844c227a17c21d161f60aa55c8b3c41 (DIR) parent 4bd0d33f57c6fb764ef546a9b0ebfcd20ff1df70 (HTM) Author: Anselm R.Garbe <arg@10ksloc.org> Date: Thu, 10 Aug 2006 11:26:32 +0200 applied sumik's multihead patch Diffstat: M client.c | 2 ++ M draw.c | 2 +- M event.c | 15 ++++++++++----- 3 files changed, 13 insertions(+), 6 deletions(-) --- (DIR) diff --git a/client.c b/client.c @@ -49,6 +49,8 @@ ban(Client *c) void focus(Client *c) { + if (!issel) + return; Client *old = sel; XEvent ev; (DIR) diff --git a/draw.c b/draw.c @@ -138,7 +138,7 @@ drawtitle(Client *c) int i; Bool istile = arrange == dotile; - if(c == sel) { + if(c == sel && issel) { drawstatus(); XUnmapWindow(dpy, c->title); XSetWindowBorder(dpy, c->win, dc.fg); (DIR) diff --git a/event.c b/event.c @@ -114,10 +114,10 @@ buttonpress(XEvent *e) } break; case Button4: - viewnext(&a); + viewprev(&a); break; case Button5: - viewprev(&a); + viewnext(&a); break; } } @@ -226,8 +226,11 @@ enternotify(XEvent *e) if((c = getclient(ev->window)) || (c = getctitle(ev->window))) focus(c); - else if(ev->window == root) + else if(ev->window == root) { issel = True; + XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime); + drawall(); + } } static void @@ -267,8 +270,10 @@ leavenotify(XEvent *e) { XCrossingEvent *ev = &e->xcrossing; - if((ev->window == root) && !ev->same_screen) - issel = True; + if((ev->window == root) && !ev->same_screen) { + issel = False; + drawall(); + } } static void