|
|
@@ -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();
|
|
|
-}
|