X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=client.c;h=fd91af5d1d0b888339b1436b5552fe456ebe056a;hb=d9a6a3b5d2e0152d5746723fcd482994602f292e;hp=45acf2e619acec3ae5c89adf4505513c65e52f94;hpb=937cabfa0aad7eef6d25e9d142a478163de200c5;p=dwm.git diff --git a/client.c b/client.c index 45acf2e..fd91af5 100644 --- a/client.c +++ b/client.c @@ -244,11 +244,11 @@ manage(Window w, XWindowAttributes *wa) c->next = clients; clients = c; - XGrabButton(dpy, Button1, MODKEY, c->win, False, ButtonPressMask, + XGrabButton(dpy, Button1, MODKEY, c->win, False, BUTTONMASK, GrabModeAsync, GrabModeSync, None, None); - XGrabButton(dpy, Button2, MODKEY, c->win, False, ButtonPressMask, + XGrabButton(dpy, Button2, MODKEY, c->win, False, BUTTONMASK, GrabModeAsync, GrabModeSync, None, None); - XGrabButton(dpy, Button3, MODKEY, c->win, False, ButtonPressMask, + XGrabButton(dpy, Button3, MODKEY, c->win, False, BUTTONMASK, GrabModeAsync, GrabModeSync, None, None); if(!c->isfloat) @@ -416,20 +416,18 @@ togglemax(Arg *arg) void unmanage(Client *c) { - Client **l; - XGrabServer(dpy); XSetErrorHandler(xerrordummy); XUngrabButton(dpy, AnyButton, AnyModifier, c->win); XDestroyWindow(dpy, c->title); - for(l = &clients; *l && *l != c; l = &(*l)->next); if(c->prev) c->prev->next = c->next; if(c->next) c->next->prev = c->prev; - *l = c->next; + if(c == clients) + clients = c->next; if(sel == c) { sel = getnext(c->next); if(!sel) @@ -450,7 +448,7 @@ unmanage(Client *c) void zoom(Arg *arg) { - Client *c, **l; + Client *c; if(!sel) return; @@ -461,13 +459,10 @@ zoom(Arg *arg) } /* pop */ - for(l = &clients; *l && *l != sel; l = &(*l)->next); if(sel->prev) sel->prev->next = sel->next; if(sel->next) sel->next->prev = sel->prev; - *l = sel->next; - sel->prev = NULL; if(clients) clients->prev = sel;