JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
before leaning things up
[dwm.git] / bar.c
diff --git a/bar.c b/bar.c
index 8d4fb36..d9d8171 100644 (file)
--- a/bar.c
+++ b/bar.c
@@ -8,11 +8,34 @@
 void
 draw_bar()
 {
-       brush.rect = barrect;
-       brush.rect.x = brush.rect.y = 0;
-       draw(dpy, &brush, False, 0);
+       int i;
+       brush.x = brush.y = 0;
+       brush.w = bw;
+       brush.h = bh;
+       draw(dpy, &brush, False, NULL);
 
-       XCopyArea(dpy, brush.drawable, barwin, brush.gc, 0, 0, barrect.width,
-                       barrect.height, 0, 0);
+       brush.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]);
+       }
+       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);
+       }
+       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);
        XFlush(dpy);
 }