diff options
| author | Anselm R. Garbe <garbeam@gmail.com> | 2007-11-15 18:57:31 +0100 | 
|---|---|---|
| committer | Anselm R. Garbe <garbeam@gmail.com> | 2007-11-15 18:57:31 +0100 | 
| commit | 762b66ae7c0cffb51bfbda8c52c4ecc892ae1808 (patch) | |
| tree | 25a974ebf0a0e6026fc66dd1020c333660cf6f4a | |
| parent | cb4951dd54951611bb99924b9ae1d0a7c87f47cc (diff) | |
| download | dwm-762b66ae7c0cffb51bfbda8c52c4ecc892ae1808.tar.gz | |
hack that adds NET_SUPPORTING_WM_CHECK handling, dwm identifies itself as compiz, hence I believe this might workaround the JDK 1.6+ XToolkit bug
| -rw-r--r-- | dwm.c | 18 | 
1 files changed, 15 insertions, 3 deletions
| @@ -53,7 +53,7 @@  enum { BarTop, BarBot, BarOff };			/* bar position */  enum { CurNormal, CurResize, CurMove, CurLast };	/* cursor */  enum { ColBorder, ColFG, ColBG, ColLast };		/* color */ -enum { NetSupported, NetWMName, NetLast };		/* EWMH atoms */ +enum { NetSupported, NetWMCheck, NetWMName, NetLast };	/* EWMH atoms */  enum { WMProtocols, WMDelete, WMName, WMState, WMLast };/* default atoms */  /* typedefs */ @@ -1427,19 +1427,20 @@ void  setup(void) {  	int d;  	unsigned int i, j, mask; +	Atom utf8string;  	Window w;  	XModifierKeymap *modmap;  	XSetWindowAttributes wa;  	/* init atoms */ +	utf8string = XInternAtom(dpy, "UTF8_STRING", False);  	wmatom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False);  	wmatom[WMDelete] = XInternAtom(dpy, "WM_DELETE_WINDOW", False);  	wmatom[WMName] = XInternAtom(dpy, "WM_NAME", False);  	wmatom[WMState] = XInternAtom(dpy, "WM_STATE", False);  	netatom[NetSupported] = XInternAtom(dpy, "_NET_SUPPORTED", False); +	netatom[NetWMCheck] = XInternAtom(dpy, "_NET_SUPPORTING_WM_CHECK", False);  	netatom[NetWMName] = XInternAtom(dpy, "_NET_WM_NAME", False); -	XChangeProperty(dpy, root, netatom[NetSupported], XA_ATOM, 32, -			PropModeReplace, (unsigned char *) netatom, NetLast);  	/* init cursors */  	cursor[CurNormal] = XCreateFontCursor(dpy, XC_left_ptr); @@ -1514,6 +1515,17 @@ setup(void) {  	/* multihead support */  	selscreen = XQueryPointer(dpy, root, &w, &w, &d, &d, &d, &d, &mask); + +	/* EWMH properties */ +	XChangeProperty(dpy, barwin, netatom[NetWMCheck], XA_WINDOW, 32, +			PropModeReplace, (unsigned char *) &barwin, 1); +	/* HACK: dwm identifies itself as compiz to workaround the XToolkit bug of Sun JDK */ +	XChangeProperty(dpy, barwin, netatom[NetWMName], utf8string, 8, +			PropModeReplace, (unsigned char *) "compiz", 7); +	XChangeProperty(dpy, root, netatom[NetWMCheck], XA_WINDOW, 32, +			PropModeReplace, (unsigned char *) &barwin, 1); +	XChangeProperty(dpy, root, netatom[NetSupported], XA_ATOM, 32, +			PropModeReplace, (unsigned char *) netatom, NetLast);  }  void | 
