X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=client.c;h=5be438e8b65e01462be644db375b11a29800582b;hb=349cadacf6c978f42ca582c57413895c1be52d66;hp=9b91ab65df2fdbaefcd907893f6e6cad926a4f94;hpb=92e55c7c53cb808b584982ac8f6d69112d713fab;p=dwm.git diff --git a/client.c b/client.c index 9b91ab6..5be438e 100644 --- a/client.c +++ b/client.c @@ -24,7 +24,7 @@ resizetitle(Client *c) c->tw = c->w + 2; c->tx = c->x + c->w - c->tw + 2; c->ty = c->y; - if(c->tags[tsel]) + if(isvisible(c)) XMoveResizeWindow(dpy, c->title, c->tx, c->ty, c->tw, c->th); else XMoveResizeWindow(dpy, c->title, c->tx + 2 * sw, c->ty, c->tw, c->th); @@ -49,6 +49,8 @@ ban(Client *c) void focus(Client *c) { + if (!issel) + return; Client *old = sel; XEvent ev; @@ -58,8 +60,6 @@ focus(Client *c) drawtitle(c); XSetInputFocus(dpy, c->win, RevertToPointerRoot, CurrentTime); XSync(dpy, False); - XChangeProperty(dpy, root, netatom[NetActiveWindow], XA_WINDOW, 32, - PropModeReplace, (unsigned char *)&c->win, 1); while(XCheckMaskEvent(dpy, EnterWindowMask, &ev)); } @@ -199,13 +199,6 @@ killclient(Arg *arg) } void -lower(Client *c) -{ - XLowerWindow(dpy, c->title); - XLowerWindow(dpy, c->win); -} - -void manage(Window w, XWindowAttributes *wa) { Client *c; @@ -283,7 +276,7 @@ manage(Window w, XWindowAttributes *wa) /* mapping the window now prevents flicker */ XMapRaised(dpy, c->win); XMapRaised(dpy, c->title); - if(c->tags[tsel]) + if(isvisible(c)) focus(c); } @@ -418,7 +411,7 @@ togglemax(Arg *arg) sel->h = sh - 2 - bh; higher(sel); - resize(sel, False, TopLeft); + resize(sel, arrange == dofloat, TopLeft); sel->x = ox; sel->y = oy; @@ -445,13 +438,8 @@ unmanage(Client *c) c->next->prev = c->prev; if(c == clients) clients = c->next; - if(sel == c) { - sel = getnext(c->next); - if(!sel) - sel = getprev(c->prev); - if(!sel) - sel = clients; - } + if(sel == c) + sel = getnext(clients); free(c->tags); free(c); @@ -461,9 +449,6 @@ unmanage(Client *c) arrange(NULL); if(sel) focus(sel); - else - XChangeProperty(dpy, root, netatom[NetActiveWindow], XA_WINDOW, 32, - PropModeReplace, (unsigned char *)NULL, 1); } void @@ -471,7 +456,7 @@ zoom(Arg *arg) { Client *c; - if(!sel || (arrange != dotile) || sel->isfloat) + if(!sel || (arrange != dotile) || sel->isfloat || sel->ismax) return; if(sel == getnext(clients)) { @@ -482,13 +467,11 @@ zoom(Arg *arg) } /* pop */ - if(sel->prev) - sel->prev->next = sel->next; + sel->prev->next = sel->next; if(sel->next) sel->next->prev = sel->prev; sel->prev = NULL; - if(clients) - clients->prev = sel; + clients->prev = sel; sel->next = clients; clients = sel; arrange(NULL);