/hg/icedtea6: 683768: Add a workaround for Java applications usi...

ddadacha at icedtea.classpath.org ddadacha at icedtea.classpath.org
Tue Nov 15 12:04:11 PST 2011


changeset 15d88aeb3dc4 in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=15d88aeb3dc4
author: Danesh Dadachanji <ddadacha at redhat.com>
date: Tue Nov 15 15:02:41 2011 -0500

	683768: Add a workaround for Java applications using tray icon for
	Gnome Shell.


diffstat:

 ChangeLog                                     |   8 ++
 Makefile.am                                   |   3 +-
 NEWS                                          |   1 +
 patches/openjdk/683768-System-tray-icon.patch |  79 +++++++++++++++++++++++++++
 4 files changed, 90 insertions(+), 1 deletions(-)

diffs (125 lines):

diff -r 0e1ae9c38563 -r 15d88aeb3dc4 ChangeLog
--- a/ChangeLog	Tue Nov 08 06:03:17 2011 -0500
+++ b/ChangeLog	Tue Nov 15 15:02:41 2011 -0500
@@ -1,3 +1,11 @@
+2011-11-14  Danesh Dadachanji  <ddadacha at redhat.com>
+
+	* Makefile.am: 
+	(ICEDTEA_PATCHES): Add patches/openjdk/683768-System-tray-icon.patch 
+	* NEWS: Updated. 
+	* patches/openjdk/683768-System-tray-icon.patch: New file. Sets XAtoms 
+	_NET_WM_PID and WM_CLIENT_MACHINE for X windows.
+
 2011-11-07  Andrew Haley  <aph at redhat.com>
 
 	* arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp (Thumb2_iOp): Mask
diff -r 0e1ae9c38563 -r 15d88aeb3dc4 Makefile.am
--- a/Makefile.am	Tue Nov 08 06:03:17 2011 -0500
+++ b/Makefile.am	Tue Nov 15 15:02:41 2011 -0500
@@ -410,7 +410,8 @@
 	patches/openjdk/5082756-ImageIO_plugins_metadata_boolean_attributes.patch \
 	patches/openjdk/6296893-BMP_Writer_handles_TopDown_prop_incorrectly.patch \
 	patches/openjdk/7103224-glibc_name_collision.patch \
-	patches/arm-debug.patch
+	patches/arm-debug.patch \
+	patches/openjdk/683768-System-tray-icon.patch
 
 if WITH_RHINO
 ICEDTEA_PATCHES += \
diff -r 0e1ae9c38563 -r 15d88aeb3dc4 NEWS
--- a/NEWS	Tue Nov 08 06:03:17 2011 -0500
+++ b/NEWS	Tue Nov 15 15:02:41 2011 -0500
@@ -22,6 +22,7 @@
   - PR732: Use xsltproc for bootstrap xslt in place of Xerces/Xalan
   - RH727195: Japanese font mappings are broken
   - LP862286: Fix exception on trying to start PulseAudio playback
+  - RH683768: Add a workaround for Java applications using tray icon for Gnome Shell
 * Import of OpenJDK6 b23 including upgrade to HotSpot 20
   - S7023111: Add webrev script to make/scripts
   - S6909331: Add vsvars.sh to the jdk repository (handy cygwin way to get vcvars32.bat run)
diff -r 0e1ae9c38563 -r 15d88aeb3dc4 patches/openjdk/683768-System-tray-icon.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/openjdk/683768-System-tray-icon.patch	Tue Nov 15 15:02:41 2011 -0500
@@ -0,0 +1,82 @@
+--- openjdk.orig/jdk/make/sun/xawt/mapfile-vers	2011-11-10 14:24:02.954504503 -0500
++++ openjdk/jdk/make/sun/xawt/mapfile-vers	2011-11-14 15:17:31.710505342 -0500
+@@ -304,6 +304,8 @@
+         Java_sun_awt_X11_XlibWrapper_XSynchronize;
+         Java_java_awt_FileDialog_initIDs;
+         Java_sun_awt_X11_XWindow_initIDs;
++        Java_sun_awt_X11_XWindowPeer_getLocalHostname;
++        Java_sun_awt_X11_XWindowPeer_getJvmPID;
+ 
+         Java_sun_java2d_opengl_OGLContext_getOGLIdString;
+         Java_sun_java2d_opengl_OGLMaskFill_maskFill;
+--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java	2011-11-10 14:24:02.702508353 -0500
++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java	2011-11-14 15:17:31.735504849 -0500
+@@ -199,11 +199,18 @@
+         return name;
+     }
+ 
++    private static native String getLocalHostname();
++    private static native int getJvmPID();
++    
+     void postInit(XCreateWindowParams params) {
+         super.postInit(params);
+ 
+         // Init WM_PROTOCOLS atom
+         initWMProtocols();
++        
++        // Set _NET_WM_PID and WM_CLIENT_MACHINE using this JVM
++        XAtom.get("WM_CLIENT_MACHINE").setProperty(getWindow(), getLocalHostname());
++        XAtom.get("_NET_WM_PID").setCard32Property(getWindow(), getJvmPID());
+ 
+         // Set WM_TRANSIENT_FOR and group_leader
+         Window t_window = (Window)target;
+--- openjdk.orig/jdk/src/solaris/native/sun/xawt/XToolkit.c	2011-07-05 14:36:12.000000000 -0400
++++ openjdk/jdk/src/solaris/native/sun/xawt/XToolkit.c	2011-11-14 15:17:31.775504063 -0500
+@@ -46,6 +46,8 @@
+ #include "java_awt_SystemColor.h"
+ #include "java_awt_TrayIcon.h"
+ 
++#include <unistd.h>
++
+ uint32_t awt_NumLockMask = 0;
+ Boolean  awt_ModLockIsShiftLock = False;
+ 
+@@ -914,3 +916,38 @@
+         AWT_UNLOCK();
+     }
+ }
++
++/*
++ * Class:     sun_awt_X11_XWindowPeer
++ * Method:    getJvmPID
++ * Signature: ()I
++ */
++JNIEXPORT jint JNICALL Java_sun_awt_X11_XWindowPeer_getJvmPID
++(JNIEnv *env, jclass cls) 
++{
++    /* Return the JVM's PID. */
++    return getpid();
++}
++
++#ifndef HOST_NAME_MAX
++#define HOST_NAME_MAX 1024 /* Overestimated */
++#endif
++
++/*
++ * Class:     sun_awt_X11_XWindowPeer
++ * Method:    getLocalHostname
++ * Signature: ()Ljava/lang/String;
++ */
++JNIEXPORT jstring JNICALL Java_sun_awt_X11_XWindowPeer_getLocalHostname
++(JNIEnv *env, jclass cls) 
++{
++    /* Return the machine's FQDN. */
++    char hostname[HOST_NAME_MAX + 1];
++    if (gethostname(hostname, HOST_NAME_MAX + 1) == 0) {
++        hostname[HOST_NAME_MAX] = '\0';
++        jstring res = (*env)->NewStringUTF(env, hostname);
++        return res;
++    }
++
++    return (jstring)NULL;
++}



More information about the distro-pkg-dev mailing list