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
This commit is contained in:
parent
cb4951dd54
commit
762b66ae7c
18
dwm.c
18
dwm.c
|
@ -53,7 +53,7 @@
|
||||||
enum { BarTop, BarBot, BarOff }; /* bar position */
|
enum { BarTop, BarBot, BarOff }; /* bar position */
|
||||||
enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */
|
enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */
|
||||||
enum { ColBorder, ColFG, ColBG, ColLast }; /* color */
|
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 */
|
enum { WMProtocols, WMDelete, WMName, WMState, WMLast };/* default atoms */
|
||||||
|
|
||||||
/* typedefs */
|
/* typedefs */
|
||||||
|
@ -1427,19 +1427,20 @@ void
|
||||||
setup(void) {
|
setup(void) {
|
||||||
int d;
|
int d;
|
||||||
unsigned int i, j, mask;
|
unsigned int i, j, mask;
|
||||||
|
Atom utf8string;
|
||||||
Window w;
|
Window w;
|
||||||
XModifierKeymap *modmap;
|
XModifierKeymap *modmap;
|
||||||
XSetWindowAttributes wa;
|
XSetWindowAttributes wa;
|
||||||
|
|
||||||
/* init atoms */
|
/* init atoms */
|
||||||
|
utf8string = XInternAtom(dpy, "UTF8_STRING", False);
|
||||||
wmatom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False);
|
wmatom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False);
|
||||||
wmatom[WMDelete] = XInternAtom(dpy, "WM_DELETE_WINDOW", False);
|
wmatom[WMDelete] = XInternAtom(dpy, "WM_DELETE_WINDOW", False);
|
||||||
wmatom[WMName] = XInternAtom(dpy, "WM_NAME", False);
|
wmatom[WMName] = XInternAtom(dpy, "WM_NAME", False);
|
||||||
wmatom[WMState] = XInternAtom(dpy, "WM_STATE", False);
|
wmatom[WMState] = XInternAtom(dpy, "WM_STATE", False);
|
||||||
netatom[NetSupported] = XInternAtom(dpy, "_NET_SUPPORTED", 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);
|
netatom[NetWMName] = XInternAtom(dpy, "_NET_WM_NAME", False);
|
||||||
XChangeProperty(dpy, root, netatom[NetSupported], XA_ATOM, 32,
|
|
||||||
PropModeReplace, (unsigned char *) netatom, NetLast);
|
|
||||||
|
|
||||||
/* init cursors */
|
/* init cursors */
|
||||||
cursor[CurNormal] = XCreateFontCursor(dpy, XC_left_ptr);
|
cursor[CurNormal] = XCreateFontCursor(dpy, XC_left_ptr);
|
||||||
|
@ -1514,6 +1515,17 @@ setup(void) {
|
||||||
|
|
||||||
/* multihead support */
|
/* multihead support */
|
||||||
selscreen = XQueryPointer(dpy, root, &w, &w, &d, &d, &d, &d, &mask);
|
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
|
void
|
||||||
|
|
Loading…
Reference in a new issue