JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
bar shows if currently is tiled (Mod1-space) or floating (Mod1-Shift-space) mode
[dwm.git] / bar.c
diff --git a/bar.c b/bar.c
index ea4b946..953ac6b 100644 (file)
--- a/bar.c
+++ b/bar.c
@@ -23,32 +23,28 @@ void
 draw_bar()
 {
        int i;
+       char *mode = arrange == tiling ? "#" : "~";
+
        dc.x = dc.y = 0;
        dc.w = bw;
-       drawtext(NULL, False);
+       drawtext(NULL, False, False);
+
+       dc.w = textw(mode) + dc.font.height;
+       drawtext(mode, True, True);
 
-       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);
 }