URI: 
       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 - dwm - dynamic window manager
  HTML git clone https://git.parazyd.org/dwm
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 762b66ae7c0cffb51bfbda8c52c4ecc892ae1808
   DIR parent cb4951dd54951611bb99924b9ae1d0a7c87f47cc
  HTML Author: Anselm R. Garbe <garbeam@gmail.com>
       Date:   Thu, 15 Nov 2007 18:57:31 +0100
       
       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
       Diffstat:
         M dwm.c                               |      18 +++++++++++++++---
       
       1 file changed, 15 insertions(+), 3 deletions(-)
       ---
   DIR diff --git a/dwm.c b/dwm.c
       @@ -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