From a6a216f28cbc49afaace269c2662382a351fda24 Mon Sep 17 00:00:00 2001 From: Anselm R Garbe Date: Mon, 24 Mar 2008 13:33:32 +0000 Subject: [PATCH 1/1] geom indicator and layout indicator is only displayed if there are several geoms/layouts --- config.def.h | 5 +---- dwm.c | 22 ++++++++++++++-------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/config.def.h b/config.def.h index 5a99b7f..b62e938 100644 --- a/config.def.h +++ b/config.def.h @@ -15,10 +15,7 @@ const char tags[][MAXTAGLEN] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; Rule rules[] = { /* class instance title tags ref isfloating */ - { NULL, NULL, "Firefox", tags[8], False }, - { NULL, NULL, "Gimp", NULL, True }, - { NULL, NULL, "MPlayer", NULL, True }, - { NULL, NULL, "Acroread", NULL, True }, + { "Gimp", NULL, NULL, NULL, True }, }; /* geometries, s{x,y,w,h} and bh are already initualized here */ diff --git a/dwm.c b/dwm.c index 0e72c47..54d021f 100644 --- a/dwm.c +++ b/dwm.c @@ -517,9 +517,11 @@ drawbar(void) { Client *c; dc.x = 0; - dc.w = bgw; - drawtext(geom->symbol, dc.norm, False); - dc.x += bgw; + if(bgw > 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]); @@ -533,9 +535,13 @@ drawbar(void) { } dc.x += dc.w; } - dc.w = blw; - drawtext(lt->symbol, dc.norm, False); - x = dc.x + dc.w; + if(blw > 0) { + dc.w = blw; + drawtext(lt->symbol, dc.norm, False); + x = dc.x + dc.w; + } + else + x = dc.x; dc.w = textw(stext); dc.x = bw - dc.w; if(dc.x < x) { @@ -1502,12 +1508,12 @@ setup(void) { lt = &layouts[0]; /* init bar */ - for(blw = i = 0; i < LENGTH(layouts); i++) { + for(blw = i = 0; LENGTH(layouts) > 1 && i < LENGTH(layouts); i++) { w = textw(layouts[i].symbol); if(w > blw) blw = w; } - for(bgw = i = 0; i < LENGTH(geoms); i++) { + for(bgw = i = 0; LENGTH(geoms) > 1 && i < LENGTH(geoms); i++) { w = textw(geoms[i].symbol); if(w > bgw) bgw = w; -- 1.7.10.4