X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=tag.c;h=841d0fc5fac5ed2fc633f9cbb936a5cc3431360d;hb=a20b10d01fab9e844ba7cd2cf694b45f61b89f7c;hp=f6f4535a4fce7793ded49099ee67238edb2930e1;hpb=57e6e3bb80b5fc4709de3f8b716a8b8065897c7a;p=dwm.git diff --git a/tag.c b/tag.c index f6f4535..841d0fc 100644 --- a/tag.c +++ b/tag.c @@ -47,7 +47,9 @@ dofloat(Arg *arg) else ban(c); } - if((sel = getnext(clients))) { + if(!sel || !isvisible(sel)) + sel = getnext(clients); + if(sel) { focus(sel); restack(); } @@ -111,7 +113,9 @@ dotile(Arg *arg) else ban(c); } - if((sel = getnext(clients))) + if(!sel || !isvisible(sel)) + sel = getnext(clients); + if(sel) focus(sel); else XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime); @@ -269,14 +273,18 @@ tag(Arg *arg) sel->tags[i] = False; sel->tags[arg->i] = True; settitle(sel); - arrange(NULL); + if(!isvisible(sel)) + arrange(NULL); } void togglemode(Arg *arg) { arrange = arrange == dofloat ? dotile : dofloat; - arrange(NULL); + if(sel) + arrange(NULL); + else + drawstatus(); } void @@ -292,6 +300,8 @@ toggletag(Arg *arg) if(i == ntags) sel->tags[arg->i] = True; settitle(sel); + if(!isvisible(sel)) + arrange(NULL); }