diff --git a/jdk/src/solaris/classes/sun/awt/X11/XWM.java b/jdk/src/solaris/classes/sun/awt/X11/XWM.java index 68d1ff7..878327e 100644 --- openjdk/jdk/src/solaris/classes/sun/awt/X11/XWM.java +++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XWM.java @@ -98,11 +98,14 @@ class XWM implements MWMConstants, XUtilConstants { ICE_WM = 10, METACITY_WM = 11, COMPIZ_WM = 12, - LG3D_WM = 13; + LG3D_WM = 13, + OTHER_NONREPARENTING_WM = 14; public String toString() { switch (WMID) { case NO_WM: return "NO WM"; + case OTHER_NONREPARENTING_WM: + return "Other non-reparenting WM"; case OTHER_WM: return "Other WM"; case OPENLOOK_WM: @@ -564,7 +567,7 @@ class XWM implements MWMConstants, XUtilConstants { } static boolean isNonReparentingWM() { - return (XWM.getWMID() == XWM.COMPIZ_WM || XWM.getWMID() == XWM.LG3D_WM); + return (XWM.getWMID() == XWM.COMPIZ_WM || XWM.getWMID() == XWM.LG3D_WM || XWM.getWMID() == XWM.OTHER_NONREPARENTING_WM); } /* @@ -764,9 +767,17 @@ class XWM implements MWMConstants, XUtilConstants { * supports WIN or _NET wm spec. */ else if (l_net_protocol.active()) { - awt_wmgr = XWM.OTHER_WM; + if (XToolkit.getEnv("_JAVA_AWT_WM_NONREPARENTING") != null) { + awt_wmgr = XWM.OTHER_NONREPARENTING_WM; + } else { + awt_wmgr = XWM.OTHER_WM; + } } else if (win.active()) { - awt_wmgr = XWM.OTHER_WM; + if (XToolkit.getEnv("_JAVA_AWT_WM_NONREPARENTING") != null) { + awt_wmgr = XWM.OTHER_NONREPARENTING_WM; + } else { + awt_wmgr = XWM.OTHER_WM; + } } /* * Check for legacy WMs. @@ -777,6 +788,8 @@ class XWM implements MWMConstants, XUtilConstants { awt_wmgr = XWM.MOTIF_WM; } else if (isOpenLook()) { awt_wmgr = XWM.OPENLOOK_WM; + } else if (XToolkit.getEnv("_JAVA_AWT_WM_NONREPARENTING") != null) { + awt_wmgr = XWM.OTHER_NONREPARENTING_WM; } else { awt_wmgr = XWM.OTHER_WM; } @@ -1298,6 +1311,7 @@ class XWM implements MWMConstants, XUtilConstants { res = new Insets(28, 6, 6, 6); break; case NO_WM: + case OTHER_NONREPARENTING_WM: case LG3D_WM: res = zeroInsets; break;