Introduction
Introduction Statistics Contact Development Disclaimer Help
applied Ivan Delalande's NET_SUPPORTING_WM_CHECK patch for gtk3 compatibility -…
git clone git://git.suckless.org/dwm
Log
Files
Refs
README
LICENSE
---
commit e63bf229485a576d68975dd4eb00c210394133ae
parent 5376947571040a4654384ea8889a54cc2313cca7
Author: Anselm R Garbe <[email protected]>
Date: Mon, 5 Dec 2016 10:09:49 +0100
applied Ivan Delalande's NET_SUPPORTING_WM_CHECK patch for gtk3 compatibility
Diffstat:
M dwm.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
---
diff --git a/dwm.c b/dwm.c
@@ -61,7 +61,7 @@
/* enums */
enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */
enum { SchemeNorm, SchemeSel }; /* color schemes */
-enum { NetSupported, NetWMName, NetWMState,
+enum { NetSupported, NetWMName, NetWMState, NetWMCheck,
NetWMFullscreen, NetActiveWindow, NetWMWindowType,
NetWMWindowTypeDialog, NetClientList, NetLast }; /* EWMH atoms */
enum { WMProtocols, WMDelete, WMState, WMTakeFocus, WMLast }; /* default atoms…
@@ -267,7 +267,7 @@ static Scm *scheme;
static Display *dpy;
static Drw *drw;
static Monitor *mons, *selmon;
-static Window root;
+static Window root, wmcheckwin;
/* configuration, allows nested code to access above variables */
#include "config.h"
@@ -485,6 +485,7 @@ cleanup(void)
drw_cur_free(drw, cursor[i]);
for (i = 0; i < LENGTH(colors); i++)
free(scheme[i]);
+ XDestroyWindow(dpy, wmcheckwin);
drw_free(drw);
XSync(dpy, False);
XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot, CurrentTime);
@@ -1551,6 +1552,7 @@ setup(void)
{
int i;
XSetWindowAttributes wa;
+ Atom utf8string;
/* clean up any zombies immediately */
sigchld(0);
@@ -1567,6 +1569,7 @@ setup(void)
bh = drw->fonts->h + 2;
updategeom();
/* init atoms */
+ utf8string = XInternAtom(dpy, "UTF8_STRING", False);
wmatom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False);
wmatom[WMDelete] = XInternAtom(dpy, "WM_DELETE_WINDOW", False);
wmatom[WMState] = XInternAtom(dpy, "WM_STATE", False);
@@ -1575,6 +1578,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[NetWMCheck] = XInternAtom(dpy, "_NET_SUPPORTING_WM_CHECK", Fal…
netatom[NetWMFullscreen] = XInternAtom(dpy, "_NET_WM_STATE_FULLSCREEN"…
netatom[NetWMWindowType] = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE", Fal…
netatom[NetWMWindowTypeDialog] = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE…
@@ -1590,6 +1594,14 @@ setup(void)
/* init bars */
updatebars();
updatestatus();
+ /* supporting window for NetWMCheck */
+ wmcheckwin = XCreateSimpleWindow(dpy, root, 0, 0, 1, 1, 0, 0, 0);
+ XChangeProperty(dpy, wmcheckwin, netatom[NetWMCheck], XA_WINDOW, 32,
+ PropModeReplace, (unsigned char *) &wmcheckwin, 1);
+ XChangeProperty(dpy, wmcheckwin, netatom[NetWMName], utf8string, 8,
+ PropModeReplace, (unsigned char *) "dwm", 4);
+ XChangeProperty(dpy, root, netatom[NetWMCheck], XA_WINDOW, 32,
+ PropModeReplace, (unsigned char *) &wmcheckwin, 1);
/* EWMH support per view */
XChangeProperty(dpy, root, netatom[NetSupported], XA_ATOM, 32,
PropModeReplace, (unsigned char *) netatom, NetLast);
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.