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
762b66ae
1 file(s) · +15 −3
| 53 | 53 | enum { BarTop, BarBot, BarOff }; /* bar position */ |
|
| 54 | 54 | enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */ |
|
| 55 | 55 | enum { ColBorder, ColFG, ColBG, ColLast }; /* color */ |
|
| 56 | - | enum { NetSupported, NetWMName, NetLast }; /* EWMH atoms */ |
|
| 56 | + | enum { NetSupported, NetWMCheck, NetWMName, NetLast }; /* EWMH atoms */ |
|
| 57 | 57 | enum { WMProtocols, WMDelete, WMName, WMState, WMLast };/* default atoms */ |
|
| 58 | 58 | ||
| 59 | 59 | /* typedefs */ |
|
| 1427 | 1427 | setup(void) { |
|
| 1428 | 1428 | int d; |
|
| 1429 | 1429 | unsigned int i, j, mask; |
|
| 1430 | + | Atom utf8string; |
|
| 1430 | 1431 | Window w; |
|
| 1431 | 1432 | XModifierKeymap *modmap; |
|
| 1432 | 1433 | XSetWindowAttributes wa; |
|
| 1433 | 1434 | ||
| 1434 | 1435 | /* init atoms */ |
|
| 1436 | + | utf8string = XInternAtom(dpy, "UTF8_STRING", False); |
|
| 1435 | 1437 | wmatom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False); |
|
| 1436 | 1438 | wmatom[WMDelete] = XInternAtom(dpy, "WM_DELETE_WINDOW", False); |
|
| 1437 | 1439 | wmatom[WMName] = XInternAtom(dpy, "WM_NAME", False); |
|
| 1438 | 1440 | wmatom[WMState] = XInternAtom(dpy, "WM_STATE", False); |
|
| 1439 | 1441 | netatom[NetSupported] = XInternAtom(dpy, "_NET_SUPPORTED", False); |
|
| 1442 | + | netatom[NetWMCheck] = XInternAtom(dpy, "_NET_SUPPORTING_WM_CHECK", False); |
|
| 1440 | 1443 | netatom[NetWMName] = XInternAtom(dpy, "_NET_WM_NAME", False); |
|
| 1441 | - | XChangeProperty(dpy, root, netatom[NetSupported], XA_ATOM, 32, |
|
| 1442 | - | PropModeReplace, (unsigned char *) netatom, NetLast); |
|
| 1443 | 1444 | ||
| 1444 | 1445 | /* init cursors */ |
|
| 1445 | 1446 | cursor[CurNormal] = XCreateFontCursor(dpy, XC_left_ptr); |
|
| 1514 | 1515 | ||
| 1515 | 1516 | /* multihead support */ |
|
| 1516 | 1517 | selscreen = XQueryPointer(dpy, root, &w, &w, &d, &d, &d, &d, &mask); |
|
| 1518 | + | ||
| 1519 | + | /* EWMH properties */ |
|
| 1520 | + | XChangeProperty(dpy, barwin, netatom[NetWMCheck], XA_WINDOW, 32, |
|
| 1521 | + | PropModeReplace, (unsigned char *) &barwin, 1); |
|
| 1522 | + | /* HACK: dwm identifies itself as compiz to workaround the XToolkit bug of Sun JDK */ |
|
| 1523 | + | XChangeProperty(dpy, barwin, netatom[NetWMName], utf8string, 8, |
|
| 1524 | + | PropModeReplace, (unsigned char *) "compiz", 7); |
|
| 1525 | + | XChangeProperty(dpy, root, netatom[NetWMCheck], XA_WINDOW, 32, |
|
| 1526 | + | PropModeReplace, (unsigned char *) &barwin, 1); |
|
| 1527 | + | XChangeProperty(dpy, root, netatom[NetSupported], XA_ATOM, 32, |
|
| 1528 | + | PropModeReplace, (unsigned char *) netatom, NetLast); |
|
| 1517 | 1529 | } |
|
| 1518 | 1530 | ||
| 1519 | 1531 | void |
|