X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=tag.c;h=2311ade97753bb26f87b69f452c8ab2f50317ccf;hb=154497541d1378d3aded02df06029de94d8af586;hp=a96cc62b585c30cb376c75e150cbdb186966bc51;hpb=2c477cf66147d369ae8ff17acdce743c6811ee6a;p=dwm.git diff --git a/tag.c b/tag.c index a96cc62..2311ade 100644 --- a/tag.c +++ b/tag.c @@ -1,6 +1,4 @@ -/* (C)opyright MMVI-MMVII Anselm R. Garbe - * See LICENSE file for license details. - */ +/* See LICENSE file for copyright and license details. */ #include "dwm.h" #include #include @@ -12,7 +10,7 @@ typedef struct { const char *prop; const char *tags; - Bool isversatile; + Bool isfloating; } Rule; typedef struct { @@ -83,7 +81,7 @@ settags(Client *c, Client *trans) { ch.res_name ? ch.res_name : "", c->name); for(i = 0; i < nrules; i++) if(regs[i].propregex && !regexec(regs[i].propregex, prop, 1, &tmp, 0)) { - c->isversatile = rule[i].isversatile; + c->isfloating = rule[i].isfloating; for(j = 0; regs[i].tagregex && j < ntags; j++) { if(!regexec(regs[i].tagregex, tags[j], 1, &tmp, 0)) { matched = True; @@ -101,6 +99,24 @@ settags(Client *c, Client *trans) { c->tags[i] = seltag[i]; } +void +shiftview(const char *arg) { + int i, j; + + for(i = 0; !seltag[i]; i++); + for(j = i + 1; j < ntags && !seltag[j]; j++); + if(j < ntags) + return; /* more than one tag selected */ + seltag[i] = False; + i += arg ? atoi(arg) : 0; + if(i < 0) + i = ntags - 1; + else if(i >= ntags) + i = 0; + seltag[i] = True; + lt->arrange(); +} + void tag(const char *arg) { int i; @@ -108,7 +124,7 @@ tag(const char *arg) { if(!sel) return; for(i = 0; i < ntags; i++) - sel->tags[i] = arg ? False : True; + sel->tags[i] = arg == NULL; i = arg ? atoi(arg) : 0; if(i >= 0 && i < ntags) sel->tags[i] = True; @@ -135,7 +151,7 @@ toggleview(const char *arg) { i = arg ? atoi(arg) : 0; seltag[i] = !seltag[i]; - for(j = 0; j < ntags && !seltag[j]; i++); + for(j = 0; j < ntags && !seltag[j]; j++); if(j == ntags) seltag[i] = True; /* cannot toggle last view */ lt->arrange(); @@ -146,7 +162,7 @@ view(const char *arg) { int i; for(i = 0; i < ntags; i++) - seltag[i] = arg ? False : True; + seltag[i] = arg == NULL; i = arg ? atoi(arg) : 0; if(i >= 0 && i < ntags) seltag[i] = True;