diff options
-rw-r--r-- | bar.c | 16 | ||||
-rw-r--r-- | client.c | 4 | ||||
-rw-r--r-- | draw.c | 8 | ||||
-rw-r--r-- | dwm.h | 3 | ||||
-rw-r--r-- | util.c | 8 |
5 files changed, 11 insertions, 28 deletions
@@ -25,30 +25,22 @@ draw_bar() int i; dc.x = dc.y = 0; dc.w = bw; - drawtext(NULL, False); + drawtext(NULL, False, False); dc.w = 0; for(i = 0; i < TLast; i++) { dc.x += dc.w; dc.w = textw(tags[i]) + dc.font.height; - if(i == tsel) { - swap((void **)&dc.fg, (void **)&dc.bg); - drawtext(tags[i], True); - swap((void **)&dc.fg, (void **)&dc.bg); - } - else - drawtext(tags[i], True); + drawtext(tags[i], i == tsel, True); } if(sel) { - swap((void **)&dc.fg, (void **)&dc.bg); dc.x += dc.w; dc.w = textw(sel->name) + dc.font.height; - drawtext(sel->name, True); - swap((void **)&dc.fg, (void **)&dc.bg); + drawtext(sel->name, True, True); } dc.w = textw(stext) + dc.font.height; dc.x = bx + bw - dc.w; - drawtext(stext, False); + drawtext(stext, False, False); XCopyArea(dpy, dc.drawable, barwin, dc.gc, 0, 0, bw, bh, 0, 0); XFlush(dpy); } @@ -598,12 +598,12 @@ draw_client(Client *c) if(c->tags[i]) { dc.x += dc.w; dc.w = textw(c->tags[i]) + dc.font.height; - drawtext(c->tags[i], True); + drawtext(c->tags[i], False, True); } } dc.x += dc.w; dc.w = textw(c->name) + dc.font.height; - drawtext(c->name, True); + drawtext(c->name, False, True); XCopyArea(dpy, dc.drawable, c->title, dc.gc, 0, 0, c->tw, c->th, 0, 0); XFlush(dpy); @@ -30,7 +30,7 @@ drawborder(void) } void -drawtext(const char *text, Bool border) +drawtext(const char *text, Bool invert, Bool border) { int x, y, w, h; unsigned int len; @@ -38,7 +38,7 @@ drawtext(const char *text, Bool border) XGCValues gcv; XRectangle r = { dc.x, dc.y, dc.w, dc.h }; - XSetForeground(dpy, dc.gc, dc.bg); + XSetForeground(dpy, dc.gc, invert ? dc.fg : dc.bg); XFillRectangles(dpy, dc.drawable, dc.gc, &r, 1); w = 0; @@ -65,8 +65,8 @@ drawtext(const char *text, Bool border) if(w > dc.w) return; /* too long */ - gcv.foreground = dc.fg; - gcv.background = dc.bg; + gcv.foreground = invert ? dc.bg : dc.fg; + gcv.background = invert ? dc.fg : dc.bg; if(dc.font.set) { XChangeGC(dpy, dc.gc, GCForeground | GCBackground, &gcv); XmbDrawImageString(dpy, dc.drawable, dc.font.set, dc.gc, @@ -130,7 +130,7 @@ extern void zoom(Arg *arg); extern void gravitate(Client *c, Bool invert); /* draw.c */ -extern void drawtext(const char *text, Bool border); +extern void drawtext(const char *text, Bool invert, Bool border); extern unsigned long initcolor(const char *colstr); extern void initfont(const char *fontstr); extern unsigned int textnw(char *text, unsigned int len); @@ -153,4 +153,3 @@ extern void quit(Arg *arg); extern void error(const char *errstr, ...); extern void *emallocz(unsigned int size); extern void spawn(Arg *arg); -extern void swap(void **p1, void **p2); @@ -39,14 +39,6 @@ emallocz(unsigned int size) } void -swap(void **p1, void **p2) -{ - void *tmp = *p1; - *p1 = *p2; - *p2 = tmp; -} - -void spawn(Arg *arg) { char **argv = (char **)arg->argv; |