From 427287963f89a67e97ed5606b6369e1a7b099c68 Mon Sep 17 00:00:00 2001 From: Quentin Rameau Date: Sat, 22 Nov 2014 01:01:09 +0100 Subject: [PATCH] added support for _NET_SUPPORTING_WM_CHECK --- dwm.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/dwm.c b/dwm.c index f896170..976e512 100644 --- a/dwm.c +++ b/dwm.c @@ -59,7 +59,7 @@ /* enums */ enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */ enum { SchemeNorm, SchemeSel, SchemeLast }; /* color schemes */ -enum { NetSupported, NetWMName, NetWMState, +enum { NetSupported, NetWMName, NetWMState, NetSupportingWMCheck, NetWMFullscreen, NetActiveWindow, NetWMWindowType, NetWMWindowTypeDialog, NetClientList, NetLast }; /* EWMH atoms */ enum { WMProtocols, WMDelete, WMState, WMTakeFocus, WMLast }; /* default atoms */ @@ -485,6 +485,7 @@ cleanup(void) { XSync(dpy, False); XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot, CurrentTime); XDeleteProperty(dpy, root, netatom[NetActiveWindow]); + XDeleteProperty(dpy, root, netatom[NetSupportingWMCheck]); } void @@ -798,6 +799,7 @@ focus(Client *c) { else { XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime); XDeleteProperty(dpy, root, netatom[NetActiveWindow]); + XDeleteProperty(dpy, root, netatom[NetSupportingWMCheck]); } selmon->sel = c; drawbars(); @@ -1437,6 +1439,12 @@ setfocus(Client *c) { XChangeProperty(dpy, root, netatom[NetActiveWindow], XA_WINDOW, 32, PropModeReplace, (unsigned char *) &(c->win), 1); + XChangeProperty(dpy, root, netatom[NetSupportingWMCheck], + XA_WINDOW, 32, PropModeReplace, + (unsigned char*)&c->win, 1); + XChangeProperty(dpy, c->win, netatom[NetSupportingWMCheck], + XA_WINDOW, 32, PropModeReplace, + (unsigned char*)&c->win, 1); } sendevent(c, wmatom[WMTakeFocus]); } @@ -1522,6 +1530,7 @@ setup(void) { netatom[NetSupported] = XInternAtom(dpy, "_NET_SUPPORTED", False); netatom[NetWMName] = XInternAtom(dpy, "_NET_WM_NAME", False); netatom[NetWMState] = XInternAtom(dpy, "_NET_WM_STATE", False); + netatom[NetSupportingWMCheck] = XInternAtom(dpy, "_NET_SUPPORTING_WM_CHECK", False); netatom[NetWMFullscreen] = XInternAtom(dpy, "_NET_WM_STATE_FULLSCREEN", False); netatom[NetWMWindowType] = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE", False); netatom[NetWMWindowTypeDialog] = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE_DIALOG", False); @@ -1690,6 +1699,8 @@ unfocus(Client *c, Bool setfocus) { XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime); XDeleteProperty(dpy, root, netatom[NetActiveWindow]); } + XDeleteProperty(dpy, root, netatom[NetSupportingWMCheck]); + XDeleteProperty(dpy, c->win, netatom[NetSupportingWMCheck]); } void -- 2.1.3