aboutsummaryrefslogtreecommitdiffstats
path: root/src/nativewindow/classes
diff options
context:
space:
mode:
authorSven Gothel <sgothel@jausoft.com>2019-08-19 13:14:24 +0200
committerSven Gothel <sgothel@jausoft.com>2019-08-19 13:14:24 +0200
commit7ec068e0c95a230101450cc80031f76770a0cd49 (patch)
tree8abcdad69146b93f56799a94ef84507b6727c684 /src/nativewindow/classes
parent24b75b2e91ec5f101b19fa24aa3804adb3819ebf (diff)
Bug 1363: Java 11: Resolve unsupported JAWTUtil.getMonitorDisplayID(..)
Previous commits removed access to OSX's GraphicsDevice.getCGDisplayID() on Java9+, avoiding illegal reflective access. Here we JAWTUtil.getMonitorDisplayID(..) simply returns null if Java9 or !OSX, so the sole NewtFactory caller falls back to the alternative working solution. Orig patch Wade Walker: This was used on Mac OS only to create a MonitorDevice in NewtFactoryAWT. But there was a fallback method for creating MonitorDevice, and testing with TestGearsES2GLJPanelAWT shows that the fallback method seems to give identical results on Mac, so changed to just use the fallback method (which is now the only method) everywhere. This gets rid of an illegal reflective access.
Diffstat (limited to 'src/nativewindow/classes')
-rw-r--r--src/nativewindow/classes/jogamp/nativewindow/jawt/JAWTUtil.java16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/nativewindow/classes/jogamp/nativewindow/jawt/JAWTUtil.java b/src/nativewindow/classes/jogamp/nativewindow/jawt/JAWTUtil.java
index 3eb5328bd..d2dc8f91b 100644
--- a/src/nativewindow/classes/jogamp/nativewindow/jawt/JAWTUtil.java
+++ b/src/nativewindow/classes/jogamp/nativewindow/jawt/JAWTUtil.java
@@ -557,19 +557,25 @@ public class JAWTUtil {
return jawtToolkitLock;
}
- public static final int getMonitorDisplayID(final GraphicsDevice device) {
- int displayID = 0;
+ /**
+ * Queries the Monitor's display ID of the given device
+ * <p>
+ * Currently only supported for OSX on Java<9
+ * </p>
+ * @param device for which the display id is being queried
+ * @return {@code null} if not supported (Java9+ or !OSX), otherwise the monitor displayID
+ */
+ public static final Integer getMonitorDisplayID(final GraphicsDevice device) {
if( null != getCGDisplayIDMethodOnOSX ) {
// OSX specific for Java<9
try {
final Object res = getCGDisplayIDMethodOnOSX.invoke(device);
if (res instanceof Integer) {
- displayID = ((Integer)res).intValue();
+ return (Integer)res;
}
} catch (final Throwable t) {}
}
- // TODO: Needs non-reflective Java9+ solution for all platforms
- return displayID;
+ return null;
}
/**