summaryrefslogtreecommitdiffstats
path: root/src/nativewindow/native/macosx/OSXmisc.m
diff options
context:
space:
mode:
Diffstat (limited to 'src/nativewindow/native/macosx/OSXmisc.m')
-rw-r--r--src/nativewindow/native/macosx/OSXmisc.m50
1 files changed, 7 insertions, 43 deletions
diff --git a/src/nativewindow/native/macosx/OSXmisc.m b/src/nativewindow/native/macosx/OSXmisc.m
index 6c13d9c05..f5991b1b5 100644
--- a/src/nativewindow/native/macosx/OSXmisc.m
+++ b/src/nativewindow/native/macosx/OSXmisc.m
@@ -180,42 +180,6 @@ static NSScreen * OSXUtil_getNSScreenByCGDirectDisplayID(CGDirectDisplayID displ
/*
* Class: Java_jogamp_nativewindow_macosx_OSXUtil
- * Method: getLocation0
- * Signature: (J)Lcom/jogamp/nativewindow/util/Point;
- */
-JNIEXPORT jobject JNICALL Java_jogamp_nativewindow_macosx_OSXUtil_GetLocation0
- (JNIEnv *env, jclass unused, jlong winOrView)
-{
- NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
-
- /**
- * return location in 0/0 top-left space,
- * OSX is 0/0 bottom-left space naturally
- */
- NSObject *nsObj = (NSObject*) (intptr_t) winOrView;
- NSWindow* win = NULL;
- NSView* view = NULL;
-
- if( [nsObj isKindOfClass:[NSWindow class]] ) {
- win = (NSWindow*) nsObj;
- view = [win contentView];
- } else if( nsObj != NULL && [nsObj isKindOfClass:[NSView class]] ) {
- view = (NSView*) nsObj;
- win = [view window];
- } else {
- NativewindowCommon_throwNewRuntimeException(env, "neither win nor view %p\n", nsObj);
- }
- NSRect viewFrame = [view frame];
-
- jobject res = (*env)->NewObject(env, pointClz, pointCstr, (jint)viewFrame.origin.x, (jint)viewFrame.origin.y);
-
- [pool release];
-
- return res;
-}
-
-/*
- * Class: Java_jogamp_nativewindow_macosx_OSXUtil
* Method: getLocationOnScreen0
* Signature: (JII)Lcom/jogamp/nativewindow/util/Point;
*/
@@ -243,13 +207,13 @@ JNIEXPORT jobject JNICALL Java_jogamp_nativewindow_macosx_OSXUtil_GetLocationOnS
}
NSRect viewFrame = [view frame];
- NSRect r;
- r.origin.x = src_x;
- r.origin.y = viewFrame.size.height - src_y; // y-flip for 0/0 top-left
- r.size.width = 0;
- r.size.height = 0;
- // NSRect rS = [win convertRectToScreen: r]; // 10.7
- NSPoint oS = [win convertBaseToScreen: r.origin]; // BL-screen
+ NSPoint oS = NSMakePoint(src_x, src_y);
+ if( ![view isFlipped] ) {
+ // y-flip for 0/0 top-left: TL-view -> BL-view
+ oS.y = viewFrame.size.height - oS.y;
+ }
+ oS = [view convertPoint: oS toView:nil]; // BL-view -> BL-window
+ oS = [win convertBaseToScreen: oS]; // BL-window -> BL-screen
NSScreen* screen = [win screen];
CGDirectDisplayID display = OSXUtil_getCGDirectDisplayIDByNSScreen(screen);