|
|
|
@ -96,6 +96,14 @@ attach(Client *c) { |
|
|
|
|
clients = c; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void |
|
|
|
|
ban(Client *c) { |
|
|
|
|
if (c->isbanned) |
|
|
|
|
return; |
|
|
|
|
XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y); |
|
|
|
|
c->isbanned = True; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void |
|
|
|
|
configure(Client *c) { |
|
|
|
|
XConfigureEvent ce; |
|
|
|
@ -298,6 +306,37 @@ togglefloating(const char *arg) { |
|
|
|
|
lt->arrange(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void |
|
|
|
|
unban(Client *c) { |
|
|
|
|
if (!c->isbanned) |
|
|
|
|
return; |
|
|
|
|
XMoveWindow(dpy, c->win, c->x, c->y); |
|
|
|
|
c->isbanned = False; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void |
|
|
|
|
unmanage(Client *c) { |
|
|
|
|
XWindowChanges wc; |
|
|
|
|
|
|
|
|
|
wc.border_width = c->oldborder; |
|
|
|
|
/* The server grab construct avoids race conditions. */ |
|
|
|
|
XGrabServer(dpy); |
|
|
|
|
XSetErrorHandler(xerrordummy); |
|
|
|
|
XConfigureWindow(dpy, c->win, CWBorderWidth, &wc); /* restore border */ |
|
|
|
|
detach(c); |
|
|
|
|
detachstack(c); |
|
|
|
|
if(sel == c) |
|
|
|
|
focus(NULL); |
|
|
|
|
XUngrabButton(dpy, AnyButton, AnyModifier, c->win); |
|
|
|
|
setclientstate(c, WithdrawnState); |
|
|
|
|
free(c->tags); |
|
|
|
|
free(c); |
|
|
|
|
XSync(dpy, False); |
|
|
|
|
XSetErrorHandler(xerror); |
|
|
|
|
XUngrabServer(dpy); |
|
|
|
|
lt->arrange(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void |
|
|
|
|
updatesizehints(Client *c) { |
|
|
|
|
long msize; |
|
|
|
@ -376,26 +415,3 @@ updatetitle(Client *c) { |
|
|
|
|
c->name[sizeof c->name - 1] = '\0'; |
|
|
|
|
XFree(name.value); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void |
|
|
|
|
unmanage(Client *c) { |
|
|
|
|
XWindowChanges wc; |
|
|
|
|
|
|
|
|
|
wc.border_width = c->oldborder; |
|
|
|
|
/* The server grab construct avoids race conditions. */ |
|
|
|
|
XGrabServer(dpy); |
|
|
|
|
XSetErrorHandler(xerrordummy); |
|
|
|
|
XConfigureWindow(dpy, c->win, CWBorderWidth, &wc); /* restore border */ |
|
|
|
|
detach(c); |
|
|
|
|
detachstack(c); |
|
|
|
|
if(sel == c) |
|
|
|
|
focus(NULL); |
|
|
|
|
XUngrabButton(dpy, AnyButton, AnyModifier, c->win); |
|
|
|
|
setclientstate(c, WithdrawnState); |
|
|
|
|
free(c->tags); |
|
|
|
|
free(c); |
|
|
|
|
XSync(dpy, False); |
|
|
|
|
XSetErrorHandler(xerror); |
|
|
|
|
XUngrabServer(dpy); |
|
|
|
|
lt->arrange(); |
|
|
|
|
} |
|
|
|
|