dwm

my fork of dwm
Index Commits Files Refs README LICENSE
commit fe6b0c0fc17d70e1c0f002e397bd2d3ac152ede0
parent aa2395b6a81475b44dd74618fb7f0b40305e10bb
Author: Anselm R Garbe <garbeam@gmail.com>
Date:   Mon, 17 Mar 2008 16:26:06 +0000

geoms are now drawed in the status bar
Diffstat:
Mconfig.def.h | 8++++----
Mdwm.c | 16++++++++++++----
2 files changed, 16 insertions(+), 8 deletions(-)
diff --git a/config.def.h b/config.def.h
@@ -28,8 +28,8 @@ DEFGEOM(dual,    0,  0,1280, 0, bh, ww, wh-bh, wx, wy, 1280,800-bh,  1280,  0, w
 
 Geom geoms[] = {
     /* symbol    function */
-    { "[]",        single },    /* first entry is default */
-    { "[][]",    dual },
+    { "<>",        single },    /* first entry is default */
+    { ")(",        dual },
 };
 
 /* layout(s) */
@@ -48,8 +48,8 @@ Layout layouts[] = {
 #define MODKEY            Mod1Mask
 Key keys[] = {
     /* modifier            key        function    argument */
-    { MODKEY,            XK_a,        setgeom,    "[][]" },
-    { MODKEY,            XK_d,        setgeom,    "[]" },
+    { MODKEY,            XK_a,        setgeom,    ")(" },
+    { MODKEY,            XK_d,        setgeom,    "<>" },
     { MODKEY,            XK_p,        spawn,
         "exec dmenu_run -fn '"FONT"' -nb '"NORMBGCOLOR"' -nf '"NORMFGCOLOR"' -sb '"SELBGCOLOR"' -sf '"SELFGCOLOR"'" },
     { MODKEY|ShiftMask,        XK_Return,    spawn, "exec uxterm" },
diff --git a/dwm.c b/dwm.c
@@ -210,7 +210,7 @@ void zoom(const char *arg);
 char stext[256], buf[256];
 int screen, sx, sy, sw, sh;
 int (*xerrorxlib)(Display *, XErrorEvent *);
-int bx, by, bw, bh, blw, mx, my, mw, mh, mox, moy, mow, moh, tx, ty, tw, th, wx, wy, ww, wh;
+int bx, by, bw, bh, blw, bgw, mx, my, mw, mh, mox, moy, mow, moh, tx, ty, tw, th, wx, wy, ww, wh;
 unsigned int numlockmask = 0;
 void (*handler[LASTEvent]) (XEvent *) = {
     [ButtonPress] = buttonpress,
@@ -322,10 +322,10 @@ buttonpress(XEvent *e) {
     XButtonPressedEvent *ev = &e->xbutton;
 
     if(ev->window == barwin) {
-        x = 0;
+        x = bgw;
         for(i = 0; i < LENGTH(tags); i++) {
             x += textw(tags[i]);
-            if(ev->x < x) {
+            if(ev->x > bgw && ev->x < x) {
                 if(ev->button == Button1) {
                     if(ev->state & MODKEY)
                         tag(tags[i]);
@@ -514,6 +514,9 @@ drawbar(void) {
     Client *c;
 
     dc.x = 0;
+    dc.w = bgw;
+    drawtext(geom->symbol, dc.norm, False);
+    dc.x += bgw;
     for(c = stack; c && !isvisible(c); c = c->snext);
     for(i = 0; i < LENGTH(tags); i++) {
         dc.w = textw(tags[i]);
@@ -854,7 +857,7 @@ unsigned int
 idxoftag(const char *t) {
     unsigned int i;
 
-    for(i = 0; (i < LENGTH(tags)) && (tags[i] != t); i++);
+    for(i = 0; (i < LENGTH(tags)) && strcmp(tags[i], t); i++);
     return (i < LENGTH(tags)) ? i : 0;
 }
 
@@ -1501,6 +1504,11 @@ setup(void) {
         if(i > blw)
             blw = i;
     }
+    for(bgw = i = 0; i < LENGTH(geoms); i++) {
+        i = textw(geoms[i].symbol);
+        if(i > bgw)
+            bgw = i;
+    }
 
     wa.override_redirect = 1;
     wa.background_pixmap = ParentRelative;