JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
removed a bunch of lines through swap removal
[dwm.git] / bar.c
diff --git a/bar.c b/bar.c
index d9d8171..611c669 100644 (file)
--- a/bar.c
+++ b/bar.c
@@ -3,39 +3,44 @@
  * See LICENSE file for license details.
  */
 
-#include "wm.h"
+#include "dwm.h"
+
+void
+barclick(XButtonPressedEvent *e)
+{
+       int x = 0;
+       Arg a;
+       for(a.i = 0; a.i < TLast; a.i++) {
+               x += textw(tags[a.i]) + dc.font.height;
+               if(e->x < x) {
+                       view(&a);
+                       return;
+               }
+       }
+}
 
 void
 draw_bar()
 {
        int i;
-       brush.x = brush.y = 0;
-       brush.w = bw;
-       brush.h = bh;
-       draw(dpy, &brush, False, NULL);
+       dc.x = dc.y = 0;
+       dc.w = bw;
+       drawtext(NULL, False, False);
 
-       brush.w = 0;
+       dc.w = 0;
        for(i = 0; i < TLast; i++) {
-               brush.x += brush.w;
-               brush.w = textw(&brush.font, tags[i]) + bh;
-               if(i == tsel) {
-                       swap((void **)&brush.fg, (void **)&brush.bg);
-                       draw(dpy, &brush, True, tags[i]);
-                       swap((void **)&brush.fg, (void **)&brush.bg);
-               }
-               else
-                       draw(dpy, &brush, True, tags[i]);
+               dc.x += dc.w;
+               dc.w = textw(tags[i]) + dc.font.height;
+               drawtext(tags[i], i == tsel, True);
        }
-       if(stack) {
-               swap((void **)&brush.fg, (void **)&brush.bg);
-               brush.x += brush.w;
-               brush.w = textw(&brush.font, stack->name) + bh;
-               draw(dpy, &brush, True, stack->name);
-               swap((void **)&brush.fg, (void **)&brush.bg);
+       if(sel) {
+               dc.x += dc.w;
+               dc.w = textw(sel->name) + dc.font.height;
+               drawtext(sel->name, True, True);
        }
-       brush.w = textw(&brush.font, stext) + bh;
-       brush.x = bx + bw - brush.w;
-       draw(dpy, &brush, False, stext);
-       XCopyArea(dpy, brush.drawable, barwin, brush.gc, 0, 0, bw, bh, 0, 0);
+       dc.w = textw(stext) + dc.font.height;
+       dc.x = bx + bw - dc.w;
+       drawtext(stext, False, False);
+       XCopyArea(dpy, dc.drawable, barwin, dc.gc, 0, 0, bw, bh, 0, 0);
        XFlush(dpy);
 }