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));
}
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);
}
void
manage(Window w, XWindowAttributes *wa)
{
- Client *c, **l;
+ Client *c;
XSetWindowAttributes twa;
Window trans;
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,
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);
ban(c);
XMapRaised(dpy, c->win);
XMapRaised(dpy, c->title);
+ XSync(dpy, False);
}
}
e.above = None;
e.override_redirect = False;
XSendEvent(dpy, c->win, False, StructureNotifyMask, (XEvent *)&e);
- XFlush(dpy);
+ XSync(dpy, False);
}
void
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)
free(c);
- XFlush(dpy);
+ XSync(dpy, False);
XSetErrorHandler(xerror);
XUngrabServer(dpy);
arrange(NULL);