/hg/release/icedtea7-forest-2.0/jdk: 7103610: _NET_WM_PID and WM...
ddadacha at icedtea.classpath.org
ddadacha at icedtea.classpath.org
Mon Feb 13 08:10:13 PST 2012
changeset c705a1cdc132 in /hg/release/icedtea7-forest-2.0/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.0/jdk?cmd=changeset;node=c705a1cdc132
author: anthony
date: Fri Nov 11 15:17:51 2011 +0300
7103610: _NET_WM_PID and WM_CLIENT_MACHINE are not set Summary: Set
the properties to all top-level windows Reviewed-by: anthony
Contributed-by: Danesh Dadachanji <ddadacha at redhat.com>
diffstat:
make/sun/xawt/mapfile-vers | 2 +
src/solaris/classes/sun/awt/X11/XWindowPeer.java | 7 ++++
src/solaris/native/sun/xawt/XToolkit.c | 37 ++++++++++++++++++++++++
3 files changed, 46 insertions(+), 0 deletions(-)
diffs (86 lines):
diff -r 52052ed420c5 -r c705a1cdc132 make/sun/xawt/mapfile-vers
--- a/make/sun/xawt/mapfile-vers Wed Oct 19 06:44:39 2011 +0100
+++ b/make/sun/xawt/mapfile-vers Fri Nov 11 15:17:51 2011 +0300
@@ -322,6 +322,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;
diff -r 52052ed420c5 -r c705a1cdc132 src/solaris/classes/sun/awt/X11/XWindowPeer.java
--- a/src/solaris/classes/sun/awt/X11/XWindowPeer.java Wed Oct 19 06:44:39 2011 +0100
+++ b/src/solaris/classes/sun/awt/X11/XWindowPeer.java Fri Nov 11 15:17:51 2011 +0300
@@ -208,12 +208,19 @@
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;
Window owner = t_window.getOwner();
diff -r 52052ed420c5 -r c705a1cdc132 src/solaris/native/sun/xawt/XToolkit.c
--- a/src/solaris/native/sun/xawt/XToolkit.c Wed Oct 19 06:44:39 2011 +0100
+++ b/src/solaris/native/sun/xawt/XToolkit.c Fri Nov 11 15:17:51 2011 +0300
@@ -47,6 +47,8 @@
#include "java_awt_TrayIcon.h"
#include <X11/extensions/XTest.h>
+#include <unistd.h>
+
uint32_t awt_NumLockMask = 0;
Boolean awt_ModLockIsShiftLock = False;
@@ -1087,3 +1089,38 @@
return local_num_buttons;
}
+
+/*
+ * 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