JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
implemented nmaster appearance in mode label (using %u)
authorAnselm R. Garbe <arg@suckless.org>
Mon, 8 Jan 2007 16:33:24 +0000 (17:33 +0100)
committerAnselm R. Garbe <arg@suckless.org>
Mon, 8 Jan 2007 16:33:24 +0000 (17:33 +0100)
config.arg.h
config.default.h
config.mk
draw.c
dwm.h
main.c
view.c

index aa3c0c9..b87c9dc 100644 (file)
@@ -7,7 +7,7 @@ const char *tags[] = { "home", "net", "www", "mon", "fnord", NULL };
 
 #define DEFMODE                        dotile          /* dofloat */
 #define FLOATSYMBOL            "><>"
 
 #define DEFMODE                        dotile          /* dofloat */
 #define FLOATSYMBOL            "><>"
-#define TILESYMBOL             "[]="
+#define TILESYMBOL             "[%u]="
 
 #define FONT                   "-*-terminus-medium-r-*-*-14-*-*-*-*-*-*-*"
 #define NORMBGCOLOR            "#111111"
 
 #define FONT                   "-*-terminus-medium-r-*-*-14-*-*-*-*-*-*-*"
 #define NORMBGCOLOR            "#111111"
index 348ab61..174be3f 100644 (file)
@@ -7,7 +7,7 @@ const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9", NULL };
 
 #define DEFMODE                        dotile /* dofloat */
 #define FLOATSYMBOL            "><>"
 
 #define DEFMODE                        dotile /* dofloat */
 #define FLOATSYMBOL            "><>"
-#define TILESYMBOL             "[]="
+#define TILESYMBOL             "[%u]="
 
 #define FONT                   "-*-fixed-medium-r-normal-*-13-*-*-*-*-*-*-*"
 #define NORMBGCOLOR            "#333366"
 
 #define FONT                   "-*-fixed-medium-r-normal-*-13-*-*-*-*-*-*-*"
 #define NORMBGCOLOR            "#333366"
index 1d73f2b..4a498ca 100644 (file)
--- a/config.mk
+++ b/config.mk
@@ -1,5 +1,5 @@
 # dwm version
 # dwm version
-VERSION = 2.9
+VERSION = 3.0
 
 # Customize below to fit your system
 
 
 # Customize below to fit your system
 
diff --git a/draw.c b/draw.c
index 9a469f9..fe73867 100644 (file)
--- a/draw.c
+++ b/draw.c
@@ -120,7 +120,7 @@ drawstatus(void) {
                dc.x += dc.w;
        }
        dc.w = bmw;
                dc.x += dc.w;
        }
        dc.w = bmw;
-       drawtext(arrange == dofloat ?  FLOATSYMBOL : TILESYMBOL, dc.status, False, False);
+       drawtext(mtext, dc.status, False, False);
        x = dc.x + dc.w;
        dc.w = textw(stext);
        dc.x = bw - dc.w;
        x = dc.x + dc.w;
        dc.w = textw(stext);
        dc.x = bw - dc.w;
diff --git a/dwm.h b/dwm.h
index f929181..68b3e36 100644 (file)
--- a/dwm.h
+++ b/dwm.h
@@ -93,6 +93,7 @@ struct Client {
 
 extern const char *tags[];                     /* all tags */
 extern char stext[1024];                       /* status text */
 
 extern const char *tags[];                     /* all tags */
 extern char stext[1024];                       /* status text */
+extern char mtext[32];                         /* mode text */
 extern int bx, by, bw, bh, bmw;                        /* bar geometry, bar mode label width */
 extern int screen, sx, sy, sw, sh;             /* screen geometry */
 extern int wax, way, wah, waw;                 /* windowarea geometry */
 extern int bx, by, bw, bh, bmw;                        /* bar geometry, bar mode label width */
 extern int screen, sx, sy, sw, sh;             /* screen geometry */
 extern int wax, way, wah, waw;                 /* windowarea geometry */
diff --git a/main.c b/main.c
index da209a9..c080ada 100644 (file)
--- a/main.c
+++ b/main.c
@@ -17,7 +17,7 @@
 
 /* extern */
 
 
 /* extern */
 
-char stext[1024];
+char stext[1024], mtext[32];
 Bool *seltag;
 int bx, by, bw, bh, bmw, masterd, screen, sx, sy, sw, sh, wax, way, waw, wah;
 unsigned int master, nmaster, ntags, numlockmask;
 Bool *seltag;
 int bx, by, bw, bh, bmw, masterd, screen, sx, sy, sw, sh, wax, way, waw, wah;
 unsigned int master, nmaster, ntags, numlockmask;
@@ -128,12 +128,13 @@ setup(void) {
        dc.status[ColFG] = getcolor(STATUSFGCOLOR);
        setfont(FONT);
        /* geometry */
        dc.status[ColFG] = getcolor(STATUSFGCOLOR);
        setfont(FONT);
        /* geometry */
-       bmw = textw(TILESYMBOL) > textw(FLOATSYMBOL) ?  textw(TILESYMBOL) : textw(FLOATSYMBOL);
        sx = sy = 0;
        sw = DisplayWidth(dpy, screen);
        sh = DisplayHeight(dpy, screen);
        master = MASTER;
        nmaster = NMASTER;
        sx = sy = 0;
        sw = DisplayWidth(dpy, screen);
        sh = DisplayHeight(dpy, screen);
        master = MASTER;
        nmaster = NMASTER;
+       snprintf(mtext, sizeof mtext, arrange == dofloat ? FLOATSYMBOL : TILESYMBOL, nmaster);
+       bmw = textw(mtext);
        /* bar */
        bx = sx;
        by = sy;
        /* bar */
        bx = sx;
        by = sy;
diff --git a/view.c b/view.c
index f2e4040..2f2d42a 100644 (file)
--- a/view.c
+++ b/view.c
@@ -2,6 +2,7 @@
  * See LICENSE file for license details.
  */
 #include "dwm.h"
  * See LICENSE file for license details.
  */
 #include "dwm.h"
+#include <stdio.h>
 
 /* static */
 
 
 /* static */
 
@@ -149,10 +150,15 @@ focusprev(Arg *arg) {
 
 void
 incnmaster(Arg *arg) {
 
 void
 incnmaster(Arg *arg) {
-       if((nmaster + arg->i < 1) || (wah / (nmaster + arg->i) < bh))
+       if((arrange == dofloat) || (nmaster + arg->i < 1) || (wah / (nmaster + arg->i) < bh))
                return;
        nmaster += arg->i;
                return;
        nmaster += arg->i;
-       arrange();
+       snprintf(mtext, sizeof mtext, arrange == dofloat ? FLOATSYMBOL : TILESYMBOL, nmaster);
+       bmw = textw(mtext);
+       if(sel)
+               arrange();
+       else
+               drawstatus();
 }
 
 Bool
 }
 
 Bool
@@ -218,6 +224,8 @@ togglefloat(Arg *arg) {
 void
 togglemode(Arg *arg) {
        arrange = (arrange == dofloat) ? dotile : dofloat;
 void
 togglemode(Arg *arg) {
        arrange = (arrange == dofloat) ? dotile : dofloat;
+       snprintf(mtext, sizeof mtext, arrange == dofloat ? FLOATSYMBOL : TILESYMBOL, nmaster);
+       bmw = textw(mtext);
        if(sel)
                arrange();
        else
        if(sel)
                arrange();
        else