| tapplied Johannes Hofmann's patch, please test - dwm - [fork] customized build … | |
| git clone git://src.adamsgaard.dk/dwm | |
| Log | |
| Files | |
| Refs | |
| README | |
| LICENSE | |
| --- | |
| commit 63d719023161c807242c01a2fe81a1097ca37447 | |
| parent b279cef670e4d0e744e50331fce7a1f4a4e73798 | |
| Author: anselm@anselm1 <unknown> | |
| Date: Mon, 4 Aug 2008 17:39:36 +0100 | |
| applied Johannes Hofmann's patch, please test | |
| Diffstat: | |
| M dwm.c | 58 ++++++++++-------------------… | |
| 1 file changed, 18 insertions(+), 40 deletions(-) | |
| --- | |
| diff --git a/dwm.c b/dwm.c | |
| t@@ -159,9 +159,7 @@ static Bool gettextprop(Window w, Atom atom, char *text, u… | |
| static void grabbuttons(Client *c, Bool focused); | |
| static void grabkeys(void); | |
| static void initfont(const char *fontstr); | |
| -static Bool isoccupied(unsigned int t); | |
| static Bool isprotodel(Client *c); | |
| -static Bool isurgent(unsigned int t); | |
| static void keypress(XEvent *e); | |
| static void killclient(const Arg *arg); | |
| static void manage(Window w, XWindowAttributes *wa); | |
| t@@ -500,19 +498,23 @@ die(const char *errstr, ...) { | |
| void | |
| drawbar(void) { | |
| - int i, x; | |
| + int x; | |
| + unsigned int i, occ = 0, urg = 0; | |
| + unsigned long *col; | |
| + Client *c; | |
| + | |
| + for(c = clients; c; c = c->next) { | |
| + occ |= c->tags; | |
| + if(c->isurgent) | |
| + urg |= c->tags; | |
| + } | |
| dc.x = 0; | |
| for(i = 0; i < LENGTH(tags); i++) { | |
| dc.w = TEXTW(tags[i]); | |
| - if(tagset[seltags] & 1 << i) { | |
| - drawtext(tags[i], dc.sel, isurgent(i)); | |
| - drawsquare(sel && sel->tags & 1 << i, isoccupied(i), i… | |
| - } | |
| - else { | |
| - drawtext(tags[i], dc.norm, isurgent(i)); | |
| - drawsquare(sel && sel->tags & 1 << i, isoccupied(i), i… | |
| - } | |
| + col = tagset[seltags] & 1 << i ? dc.sel : dc.norm; | |
| + drawtext(tags[i], col, urg & 1 << i); | |
| + drawsquare(sel && sel->tags & 1 << i, occ & 1 << i, urg & 1 <<… | |
| dc.x += dc.w; | |
| } | |
| if(blw > 0) { | |
| t@@ -741,7 +743,7 @@ grabbuttons(Client *c, Bool focused) { | |
| if(buttons[i].click == ClkClientWin) | |
| for(j = 0; j < LENGTH(modifiers); j++) | |
| XGrabButton(dpy, buttons[i].button, bu… | |
| - } else | |
| + } else | |
| XGrabButton(dpy, AnyButton, AnyModifier, c->win, False, | |
| BUTTONMASK, GrabModeAsync, GrabModeSync, None, Non… | |
| } | |
| t@@ -749,6 +751,7 @@ grabbuttons(Client *c, Bool focused) { | |
| void | |
| grabkeys(void) { | |
| unsigned int i, j; | |
| + unsigned int modifiers[] = { 0, LockMask, numlockmask, numlockmask|Loc… | |
| KeyCode code; | |
| XModifierKeymap *modmap; | |
| t@@ -764,14 +767,9 @@ grabkeys(void) { | |
| XUngrabKey(dpy, AnyKey, AnyModifier, root); | |
| for(i = 0; i < LENGTH(keys); i++) { | |
| code = XKeysymToKeycode(dpy, keys[i].keysym); | |
| - XGrabKey(dpy, code, keys[i].mod, root, True, | |
| - GrabModeAsync, GrabModeAsync); | |
| - XGrabKey(dpy, code, keys[i].mod|LockMask, root, True, | |
| - GrabModeAsync, GrabModeAsync); | |
| - XGrabKey(dpy, code, keys[i].mod|numlockmask, root, True, | |
| - GrabModeAsync, GrabModeAsync); | |
| - XGrabKey(dpy, code, keys[i].mod|numlockmask|LockMask, root, Tr… | |
| - GrabModeAsync, GrabModeAsync); | |
| + for(j = 0; j < LENGTH(modifiers); j++) | |
| + XGrabKey(dpy, code, keys[i].mod | modifiers[j], root, … | |
| + GrabModeAsync, GrabModeAsync); | |
| } | |
| } | |
| t@@ -816,16 +814,6 @@ initfont(const char *fontstr) { | |
| } | |
| Bool | |
| -isoccupied(unsigned int t) { | |
| - Client *c; | |
| - | |
| - for(c = clients; c; c = c->next) | |
| - if(c->tags & 1 << t) | |
| - return True; | |
| - return False; | |
| -} | |
| - | |
| -Bool | |
| isprotodel(Client *c) { | |
| int i, n; | |
| Atom *protocols; | |
| t@@ -840,16 +828,6 @@ isprotodel(Client *c) { | |
| return ret; | |
| } | |
| -Bool | |
| -isurgent(unsigned int t) { | |
| - Client *c; | |
| - | |
| - for(c = clients; c; c = c->next) | |
| - if(c->isurgent && c->tags & 1 << t) | |
| - return True; | |
| - return False; | |
| -} | |
| - | |
| void | |
| keypress(XEvent *e) { | |
| unsigned int i; |