|
|
@ -53,6 +53,13 @@ grabbuttons(Client *c, Bool focused) { |
|
|
|
GrabModeAsync, GrabModeSync, None, None); |
|
|
|
GrabModeAsync, GrabModeSync, None, None); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void |
|
|
|
|
|
|
|
setclientstate(Client *c, long state) { |
|
|
|
|
|
|
|
long data[] = {state, None}; |
|
|
|
|
|
|
|
XChangeProperty(dpy, c->win, wmatom[WMState], wmatom[WMState], 32, |
|
|
|
|
|
|
|
PropModeReplace, (unsigned char *)data, 2); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static int |
|
|
|
static int |
|
|
|
xerrordummy(Display *dsply, XErrorEvent *ee) { |
|
|
|
xerrordummy(Display *dsply, XErrorEvent *ee) { |
|
|
|
return 0; |
|
|
|
return 0; |
|
|
@ -169,6 +176,7 @@ manage(Window w, XWindowAttributes *wa) { |
|
|
|
stack = clients = c; |
|
|
|
stack = clients = c; |
|
|
|
XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y); |
|
|
|
XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y); |
|
|
|
XMapWindow(dpy, c->win); |
|
|
|
XMapWindow(dpy, c->win); |
|
|
|
|
|
|
|
setclientstate(c, NormalState); |
|
|
|
if(isvisible(c)) |
|
|
|
if(isvisible(c)) |
|
|
|
focus(c); |
|
|
|
focus(c); |
|
|
|
arrange(); |
|
|
|
arrange(); |
|
|
@ -293,6 +301,7 @@ unmanage(Client *c) { |
|
|
|
focus(nc); |
|
|
|
focus(nc); |
|
|
|
} |
|
|
|
} |
|
|
|
XUngrabButton(dpy, AnyButton, AnyModifier, c->win); |
|
|
|
XUngrabButton(dpy, AnyButton, AnyModifier, c->win); |
|
|
|
|
|
|
|
setclientstate(c, WithdrawnState); |
|
|
|
free(c->tags); |
|
|
|
free(c->tags); |
|
|
|
free(c); |
|
|
|
free(c); |
|
|
|
XSync(dpy, False); |
|
|
|
XSync(dpy, False); |
|
|
|