Hi,

I'm planing to NMU openjdk-6 with the attached patch to add an
workaround for 508650 (needed because of 504524 and 504623 make to
old workaround of specifying AWT_TOOLKIT=MToolkit impossible), unless
I get a NACK from it maintainers (last try to contact them was
2008-12-19 with the same patch and intention to NMU expressed).

This patch only modifies behaviour when a new environment variable
_JAVA_AWT_WM_NONREPARENTING is set, so should have hardly any chance for
side effects.

Could this get an freeze-exception in this form? (Assuming it can
go via unstable[1])

Thanks in advance,
        Bernhard R. Link

[1] from the build-dependencies only iceape-dev differs in unstable and
that looks like a a security update and I do not find any library
dependency in the resulting binary package caused by this build-dependency.
(as icedtea packages are only built in experimental).

diff -r -u -N openjdk-6-6b11-9/debian/changelog openjdk-6-6b11/debian/changelog
--- openjdk-6-6b11-9/debian/changelog	2008-12-19 11:36:50.000000000 +0100
+++ openjdk-6-6b11/debian/changelog	2008-12-19 11:39:54.000000000 +0100
@@ -1,3 +1,12 @@
+openjdk-6 (6b11-9.1) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * if _JAVA_AWT_WM_NONREPARENTING environment variable is set,
+    disable all workarounds causing blank windows in non-reparentizing
+    window managers...
+
+ -- Bernhard R. Link <brl...@debian.org>  Sat, 13 Dec 2008 15:39:37 +0100
+
 openjdk-6 (6b11-9) unstable; urgency=low
 
   * Don't use our version of uname on 64bit archs.
diff -r -u -N openjdk-6-6b11-9/debian/patches/nonreparenting-wm.diff openjdk-6-6b11/debian/patches/nonreparenting-wm.diff
--- openjdk-6-6b11-9/debian/patches/nonreparenting-wm.diff	1970-01-01 01:00:00.000000000 +0100
+++ openjdk-6-6b11/debian/patches/nonreparenting-wm.diff	2008-12-19 11:37:23.000000000 +0100
@@ -0,0 +1,66 @@
+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;
diff -r -u -N openjdk-6-6b11-9/debian/rules openjdk-6-6b11/debian/rules
--- openjdk-6-6b11-9/debian/rules	2008-12-19 11:36:50.000000000 +0100
+++ openjdk-6-6b11/debian/rules	2008-12-19 11:37:23.000000000 +0100
@@ -116,6 +116,7 @@
 	debian/patches/fontconfig-$(if $(with_wgy_zenhai),wqy-zenhei,arphic-uming).diff \
 	debian/patches/no-compiler-path.diff \
 	debian/patches/fix-race-cond-print.diff \
+	debian/patches/nonreparenting-wm.diff
 
 ifneq (,$(filter $(distrel),hardy gutsy feisty edgy dapper))
   DISTRIBUTION_PATCHES += \

Reply via email to