X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=layout.c;h=abdf30fdb8c2493dd9824c455ff0cc755a2ece9c;hb=6ee8e3e93b79b7c92246d7d520d5a24be59e5807;hp=04835a8c340fd89d790f224f6ac9aad36560cd24;hpb=ab3d6a7dfe76d9857f2fc621034359a2a0bf09df;p=dwm.git diff --git a/layout.c b/layout.c index 04835a8..abdf30f 100644 --- a/layout.c +++ b/layout.c @@ -198,11 +198,9 @@ setlayout(const char *arg) { int i; if(!arg) { - for(i = 0; i < nlayouts && lt != &layout[i]; i++); - if(i == nlayouts - 1) - lt = &layout[0]; - else - lt = &layout[++i]; + lt++; + if(lt == layout + nlayouts) + lt = layout; } else { i = atoi(arg); @@ -216,6 +214,16 @@ setlayout(const char *arg) { drawstatus(); } +void +togglebar(const char *arg) { + if(bpos == BarOff) + bpos = (BARPOS == BarOff) ? BarTop : BARPOS; + else + bpos = BarOff; + updatebarpos(); + lt->arrange(); +} + void togglemax(const char *arg) { XEvent ev; @@ -239,7 +247,7 @@ void zoom(const char *arg) { Client *c; - if(!sel || lt->arrange != tile || sel->isfloating) + if(!sel || lt->arrange == floating || sel->isfloating) return; if((c = sel) == nexttiled(clients)) if(!(c = nexttiled(c->next)))