diff options
-rw-r--r-- | client.c | 10 | ||||
-rw-r--r-- | dwm.h | 2 | ||||
-rw-r--r-- | event.c | 4 | ||||
-rw-r--r-- | main.c | 4 |
4 files changed, 11 insertions, 9 deletions
diff --git a/client.c b/client.c index 0a59c22..f2cd802 100644 --- a/client.c +++ b/client.c @@ -85,20 +85,22 @@ focus(Client *c) { grabbuttons(sel, False); XSetWindowBorder(dpy, sel->win, dc.norm[ColBorder]); } - sel = c; - if(!issel) - return; if(c) { detachstack(c); c->snext = stack; stack = c; grabbuttons(c, True); + } + sel = c; + drawstatus(); + if(!activescreen) + return; + if(sel) { XSetWindowBorder(dpy, c->win, dc.sel[ColBorder]); XSetInputFocus(dpy, c->win, RevertToPointerRoot, CurrentTime); } else XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime); - drawstatus(); } Client * diff --git a/dwm.h b/dwm.h index 79627bd..72fcacf 100644 --- a/dwm.h +++ b/dwm.h @@ -93,7 +93,7 @@ extern unsigned int ntags, numlockmask; /* number of tags, dynamic lock mask */ extern void (*handler[LASTEvent])(XEvent *); /* event handler */ extern void (*arrange)(void); /* arrange function, indicates mode */ extern Atom wmatom[WMLast], netatom[NetLast]; -extern Bool running, issel, *seltag; /* seltag is array of Bool */ +extern Bool activescreen, running, *seltag; /* seltag is array of Bool */ extern Client *clients, *sel, *stack; /* global client list and stack */ extern Cursor cursor[CurLast]; extern DC dc; /* global draw context */ diff --git a/event.c b/event.c index c913320..4f07789 100644 --- a/event.c +++ b/event.c @@ -230,7 +230,7 @@ enternotify(XEvent *e) { if((c = getclient(ev->window)) && isvisible(c)) focus(c); else if(ev->window == root) { - issel = True; + activescreen = True; for(c = stack; c && !isvisible(c); c = c->snext); focus(c); } @@ -269,7 +269,7 @@ leavenotify(XEvent *e) { XCrossingEvent *ev = &e->xcrossing; if((ev->window == root) && !ev->same_screen) { - issel = False; + activescreen = False; focus(NULL); } } diff --git a/main.c b/main.c index ae5d6ef..20c2890 100644 --- a/main.c +++ b/main.c @@ -23,7 +23,7 @@ int bh, bmw, screen, sx, sy, sw, sh, wax, way, waw, wah; unsigned int master, nmaster, ntags, numlockmask; Atom wmatom[WMLast], netatom[NetLast]; Bool running = True; -Bool issel = True; +Bool activescreen = True; Client *clients = NULL; Client *sel = NULL; Client *stack = NULL; @@ -156,7 +156,7 @@ setup(void) { dc.gc = XCreateGC(dpy, root, 0, 0); XSetLineAttributes(dpy, dc.gc, 1, LineSolid, CapButt, JoinMiter); /* multihead support */ - issel = XQueryPointer(dpy, root, &w, &w, &i, &i, &i, &i, &mask); + activescreen = XQueryPointer(dpy, root, &w, &w, &i, &i, &i, &i, &mask); } /* |