diff options
author | Sven Gothel <[email protected]> | 2015-03-21 04:37:39 +0100 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2015-03-21 04:37:39 +0100 |
commit | 7438540ee6604cf91e14f12da891834d4cd83cfe (patch) | |
tree | f08c7ebae83b406450b83c6b8f17c608ad1c7c48 /src/nativewindow/classes | |
parent | 9a8ae7c79cb6a89626eeb6a9a00fc9e32f9c0a71 (diff) |
Bug 1148 - OSX MonitorDevice: Use unique and native deviceID instead of index
Adopt to bug 1147, commit 2c88b6dfd4eb7e2cd9a50fa48e08ecafc980931a.
Using the native unique deviceID makes monitor identification more robust.
This also allows us simplify
displayID -> NSScreen-idx -> MonitorDevice
into
displayID -> MonitorDevice
and to survive a primary monitor change.
Diffstat (limited to 'src/nativewindow/classes')
-rw-r--r-- | src/nativewindow/classes/jogamp/nativewindow/jawt/JAWTUtil.java | 9 | ||||
-rw-r--r-- | src/nativewindow/classes/jogamp/nativewindow/macosx/OSXUtil.java | 20 |
2 files changed, 14 insertions, 15 deletions
diff --git a/src/nativewindow/classes/jogamp/nativewindow/jawt/JAWTUtil.java b/src/nativewindow/classes/jogamp/nativewindow/jawt/JAWTUtil.java index 93c3dbaf7..3b824cfe4 100644 --- a/src/nativewindow/classes/jogamp/nativewindow/jawt/JAWTUtil.java +++ b/src/nativewindow/classes/jogamp/nativewindow/jawt/JAWTUtil.java @@ -550,19 +550,18 @@ public class JAWTUtil { return jawtToolkitLock; } - public static final int getMonitorIndex(final GraphicsDevice device) { - int idx = -1; + public static final int getMonitorDisplayID(final GraphicsDevice device) { + int displayID = 0; if( null != getCGDisplayIDMethodOnOSX ) { // OSX specific try { final Object res = getCGDisplayIDMethodOnOSX.invoke(device); if (res instanceof Integer) { - final int displayID = ((Integer)res).intValue(); - idx = OSXUtil.GetNSScreenIdx(displayID); + displayID = ((Integer)res).intValue(); } } catch (final Throwable t) {} } - return idx; + return displayID; } /** diff --git a/src/nativewindow/classes/jogamp/nativewindow/macosx/OSXUtil.java b/src/nativewindow/classes/jogamp/nativewindow/macosx/OSXUtil.java index a5970b87c..8ad089a56 100644 --- a/src/nativewindow/classes/jogamp/nativewindow/macosx/OSXUtil.java +++ b/src/nativewindow/classes/jogamp/nativewindow/macosx/OSXUtil.java @@ -107,17 +107,19 @@ public class OSXUtil implements ToolkitProperties { return (Insets) GetInsets0(windowOrView); } - public static int GetNSScreenIdx(final int displayID) { - return GetNSScreenIdx0(displayID); - } - public static double GetPixelScaleByScreenIdx(final int screenIndex) { - return GetPixelScale0(screenIndex); - } public static double GetPixelScaleByDisplayID(final int displayID) { - return GetPixelScale1(displayID); + if( 0 != displayID ) { + return GetPixelScale1(displayID); + } else { + return 1.0; // default + } } public static double GetPixelScale(final long windowOrView) { - return GetPixelScale2(windowOrView); + if( 0 != windowOrView ) { + return GetPixelScale2(windowOrView); + } else { + return 1.0; // default + } } public static long CreateNSWindow(final int x, final int y, final int width, final int height) { @@ -398,8 +400,6 @@ public class OSXUtil implements ToolkitProperties { private static native boolean isNSWindow0(long object); private static native Object GetLocationOnScreen0(long windowOrView, int src_x, int src_y); private static native Object GetInsets0(long windowOrView); - private static native int GetNSScreenIdx0(int displayID); - private static native double GetPixelScale0(int screenIndex); private static native double GetPixelScale1(int displayID); private static native double GetPixelScale2(long windowOrView); private static native long CreateNSWindow0(int x, int y, int width, int height); |