X-Git-Url: https://git.xinqibao.xyz/dwm.git/blobdiff_plain/10d13f01ff764ba0e875adf5d2b83c49aa08d148..e40448fd6340620354d82d801d975eaa53dbd924:/tag.c?ds=inline diff --git a/tag.c b/tag.c index cb1a2c4..cf983b8 100644 --- a/tag.c +++ b/tag.c @@ -40,6 +40,16 @@ persistconfig(Client *c) { PropModeReplace, (unsigned char *)prop, i); } +static unsigned int +idxoftag(const char *tag) { + unsigned int i; + + for(i = 0; i < ntags; i++) + if(tags[i] == tag) + return i; + return 0; +} + /* extern */ void @@ -135,17 +145,16 @@ settags(Client *c, Client *trans) { void tag(const char *arg) { - int i; + unsigned int i; if(!sel) return; for(i = 0; i < ntags; i++) sel->tags[i] = arg == NULL; - i = arg ? atoi(arg) : 0; + i = idxoftag(arg); if(i >= 0 && i < ntags) sel->tags[i] = True; - if(sel) - persistconfig(sel); + persistconfig(sel); arrange(); } @@ -154,32 +163,33 @@ togglefloating(const char *arg) { if(!sel || isfloating()) return; sel->isfloating = !sel->isfloating; - if(sel->isfloating) + if(sel->isfloating) { resize(sel, sel->x, sel->y, sel->w, sel->h, True); + persistconfig(sel); + } arrange(); } void toggletag(const char *arg) { - int i, j; + unsigned int i, j; if(!sel) return; - i = arg ? atoi(arg) : 0; + i = idxoftag(arg); sel->tags[i] = !sel->tags[i]; for(j = 0; j < ntags && !sel->tags[j]; j++); if(j == ntags) sel->tags[i] = True; - if(sel) - persistconfig(sel); + persistconfig(sel); arrange(); } void toggleview(const char *arg) { - int i, j; + unsigned int i, j; - i = arg ? atoi(arg) : 0; + i = idxoftag(arg); seltag[i] = !seltag[i]; for(j = 0; j < ntags && !seltag[j]; j++); if(j == ntags) @@ -189,11 +199,11 @@ toggleview(const char *arg) { void view(const char *arg) { - int i; + unsigned int i; for(i = 0; i < ntags; i++) seltag[i] = arg == NULL; - i = arg ? atoi(arg) : 0; + i = idxoftag(arg); if(i >= 0 && i < ntags) seltag[i] = True; arrange();