X-Git-Url: https://jasonwoof.com/gitweb/?p=dwm.git;a=blobdiff_plain;f=client.c;h=69189dea1afb1b5c4e8f750c7447ceb52b1bb1b1;hp=1e3216e4c55a16e14ecbf86b577ee49c8e04c607;hb=849e631510ed6533ac930449804e477fe67a43c2;hpb=adaa28a6e600f636f5e86244ccef69e98419ba1a diff --git a/client.c b/client.c index 1e3216e..69189de 100644 --- a/client.c +++ b/client.c @@ -49,13 +49,12 @@ focus(Client *c) Client *old = sel; XEvent ev; - XFlush(dpy); sel = c; if(old && old != c) drawtitle(old); drawtitle(c); XSetInputFocus(dpy, c->win, RevertToPointerRoot, CurrentTime); - XFlush(dpy); + XSync(dpy, False); while(XCheckMaskEvent(dpy, EnterWindowMask, &ev)); } @@ -178,7 +177,7 @@ killclient(Arg *arg) if(!sel) return; if(sel->proto & WM_PROTOCOL_DELWIN) - sendevent(sel->win, wm_atom[WMProtocols], wm_atom[WMDelete]); + sendevent(sel->win, wmatom[WMProtocols], wmatom[WMDelete]); else XKillClient(dpy, sel->win); } @@ -193,7 +192,7 @@ lower(Client *c) void manage(Window w, XWindowAttributes *wa) { - Client *c, **l; + Client *c; XSetWindowAttributes twa; Window trans; @@ -224,10 +223,11 @@ manage(Window w, XWindowAttributes *wa) settitle(c); settags(c); - for(l = &clients; *l; l = &(*l)->next); - c->next = *l; /* *l == nil */ - *l = c; + c->next = clients; + clients = c; + XGrabButton(dpy, Button1, ControlMask, c->win, False, ButtonPressMask, + GrabModeAsync, GrabModeSync, None, None); XGrabButton(dpy, Button1, Mod1Mask, c->win, False, ButtonPressMask, GrabModeAsync, GrabModeSync, None, None); XGrabButton(dpy, Button2, Mod1Mask, c->win, False, ButtonPressMask, @@ -235,8 +235,8 @@ manage(Window w, XWindowAttributes *wa) XGrabButton(dpy, Button3, Mod1Mask, c->win, False, ButtonPressMask, GrabModeAsync, GrabModeSync, None, None); - if(!c->dofloat) - c->dofloat = trans + if(!c->isfloat) + c->isfloat = trans || ((c->maxw == c->minw) && (c->maxh == c->minh)); arrange(NULL); @@ -250,6 +250,7 @@ manage(Window w, XWindowAttributes *wa) ban(c); XMapRaised(dpy, c->win); XMapRaised(dpy, c->title); + XSync(dpy, False); } } @@ -303,7 +304,7 @@ resize(Client *c, Bool inc) e.above = None; e.override_redirect = False; XSendEvent(dpy, c->win, False, StructureNotifyMask, (XEvent *)&e); - XFlush(dpy); + XSync(dpy, False); } void @@ -353,7 +354,7 @@ settitle(Client *c) name.nitems = 0; c->name[0] = 0; - XGetTextProperty(dpy, c->win, &name, net_atom[NetWMName]); + XGetTextProperty(dpy, c->win, &name, netatom[NetWMName]); if(!name.nitems) XGetWMName(dpy, c->win, &name); if(!name.nitems) @@ -393,7 +394,7 @@ unmanage(Client *c) free(c); - XFlush(dpy); + XSync(dpy, False); XSetErrorHandler(xerror); XUngrabServer(dpy); arrange(NULL);