wmii

git clone git://oldgit.suckless.org/wmii/
Log | Files | Refs | README | LICENSE

commit 31c7d39da49e904df37228ae11bd72216aae3431
parent 94e169cc3e93516cc39ffedc07d5ad478b1aeb8c
Author: Denis Grelich <denisg@suckless.org>
Date:   Sun, 28 Jan 2007 13:26:01 +0100

applied Daniel Wäber's Xlib therapist patch: gtk drag'n'drop/xprop are working again!

Diffstat:
client.c | 12+++++++++++-
main.c | 1+
wmii.h | 2+-
3 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/client.c b/client.c @@ -114,6 +114,14 @@ create_client(Window w, XWindowAttributes *wa) { } void +set_client_state(Client * c, int state) +{ + long data[] = { state, None }; + XChangeProperty(blz.dpy, c->win, wm_atom[WMState], wm_atom[WMState], 32, + PropModeReplace, (unsigned char *) data, 2); +} + +void update_client_grab(Client *c, Bool is_sel) { if(is_sel) { ungrab_mouse(c->framewin, AnyModifier, AnyButton); @@ -176,7 +184,8 @@ void map_client(Client *c) { XSelectInput(blz.dpy, c->win, CLIENT_MASK & ~StructureNotifyMask); XMapWindow(blz.dpy, c->win); - XSelectInput(blz.dpy, c->win, CLIENT_MASK); + XSelectInput(blz.dpy, c->win, CLIENT_MASK); + set_client_state(c, NormalState); } void @@ -184,6 +193,7 @@ unmap_client(Client *c) { XSelectInput(blz.dpy, c->win, CLIENT_MASK & ~StructureNotifyMask); XUnmapWindow(blz.dpy, c->win); XSelectInput(blz.dpy, c->win, CLIENT_MASK); + set_client_state(c, WithdrawnState); } void diff --git a/main.c b/main.c @@ -91,6 +91,7 @@ win_proto(Window w) { static void init_atoms() { + wm_atom[WMState] = XInternAtom(blz.dpy, "WM_STATE", False); wm_atom[WMProtocols] = XInternAtom(blz.dpy, "WM_PROTOCOLS", False); wm_atom[WMDelete] = XInternAtom(blz.dpy, "WM_DELETE_WINDOW", False); net_atom[NetSupported] = XInternAtom(blz.dpy, "_NET_SUPPORTED", False); diff --git a/wmii.h b/wmii.h @@ -67,7 +67,7 @@ struct BlitzBrush { }; /* WM atoms */ -enum { WMProtocols, WMDelete, WMLast }; +enum { WMState, WMProtocols, WMDelete, WMLast }; /* NET atoms */ enum { NetSupported, NetWMName, NetLast };