/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