diff options
-rw-r--r-- | client.c | 2 | ||||
-rw-r--r-- | draw.c | 2 | ||||
-rw-r--r-- | event.c | 15 |
3 files changed, 13 insertions, 6 deletions
@@ -49,6 +49,8 @@ ban(Client *c) void focus(Client *c) { + if (!issel) + return; Client *old = sel; XEvent ev; @@ -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); @@ -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 |