handling WM_STATE seems to make DnD in gtk/qt apps working, well let's handle this in dwm as well
This commit is contained in:
parent
7e98db251e
commit
a5cb80b86c
3 changed files with 11 additions and 1 deletions
9
client.c
9
client.c
|
@ -53,6 +53,13 @@ grabbuttons(Client *c, Bool focused) {
|
|||
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
|
||||
xerrordummy(Display *dsply, XErrorEvent *ee) {
|
||||
return 0;
|
||||
|
@ -169,6 +176,7 @@ manage(Window w, XWindowAttributes *wa) {
|
|||
stack = clients = c;
|
||||
XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y);
|
||||
XMapWindow(dpy, c->win);
|
||||
setclientstate(c, NormalState);
|
||||
if(isvisible(c))
|
||||
focus(c);
|
||||
arrange();
|
||||
|
@ -293,6 +301,7 @@ unmanage(Client *c) {
|
|||
focus(nc);
|
||||
}
|
||||
XUngrabButton(dpy, AnyButton, AnyModifier, c->win);
|
||||
setclientstate(c, WithdrawnState);
|
||||
free(c->tags);
|
||||
free(c);
|
||||
XSync(dpy, False);
|
||||
|
|
2
dwm.h
2
dwm.h
|
@ -40,7 +40,7 @@
|
|||
#define PROTODELWIN 1
|
||||
|
||||
enum { NetSupported, NetWMName, NetLast }; /* EWMH atoms */
|
||||
enum { WMProtocols, WMDelete, WMLast }; /* default atoms */
|
||||
enum { WMProtocols, WMDelete, WMState, WMLast }; /* default atoms */
|
||||
enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */
|
||||
enum { ColBorder, ColFG, ColBG, ColLast }; /* color */
|
||||
|
||||
|
|
1
main.c
1
main.c
|
@ -92,6 +92,7 @@ setup(void) {
|
|||
/* init atoms */
|
||||
wmatom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False);
|
||||
wmatom[WMDelete] = XInternAtom(dpy, "WM_DELETE_WINDOW", False);
|
||||
wmatom[WMState] = XInternAtom(dpy, "WM_STATE", False);
|
||||
netatom[NetSupported] = XInternAtom(dpy, "_NET_SUPPORTED", False);
|
||||
netatom[NetWMName] = XInternAtom(dpy, "_NET_WM_NAME", False);
|
||||
XChangeProperty(dpy, root, netatom[NetSupported], XA_ATOM, 32,
|
||||
|
|
Loading…
Reference in a new issue