summaryrefslogtreecommitdiffstats
path: root/src/newt
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2013-03-20 16:15:04 +0100
committerSven Gothel <[email protected]>2013-03-20 16:15:04 +0100
commitec50802db11f897a49a6f9e716186c700411ece5 (patch)
tree04b2f23663aaf8e9d71421c0f1447ddb2f20802e /src/newt
parent30b2490eef5069214eb6cc0c1b18ddb62c15123b (diff)
OSX/NEWT: Fix native window parenting freeze, invisible/orderOut0, Position bugs w/ parenting
Fix native window parenting freeze: - Pull out setJavaWindowObject(..) of changeContentView(..) to be called seperately, add param for changeContentView(..) to enable/disable setJavaWindowObject() - initWindow0(..): - Call changeContentView(..) w/o setJavaWindowObject() - setJavaWindowObject(..) at end of initialization Fix native window parenting orderOut0: If parent window is invisible or no parent used call orderOut(..), otherwise call orderBack(). Fix updatePosition(..): positionChanged(..) - Position bug w/ parenting - AWT parent passed 0/0 - call positionChanged(..) w/ client-pos instead of screen-pos Fix getLocationOnScreenImpl(..) - Position bug w/ parenting - Position < 0/0 is valid! Misc: - setWindowClientTopLeftPointAndSize0(..), setWindowClientTopLeftPoint0(..): Add 'display' param, deciding whether area should be display (invalidated)
Diffstat (limited to 'src/newt')
-rw-r--r--src/newt/classes/jogamp/newt/awt/event/AWTParentWindowAdapter.java2
-rw-r--r--src/newt/classes/jogamp/newt/driver/DriverUpdatePosition.java10
-rw-r--r--src/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java66
-rw-r--r--src/newt/native/MacWindow.m98
4 files changed, 101 insertions, 75 deletions
diff --git a/src/newt/classes/jogamp/newt/awt/event/AWTParentWindowAdapter.java b/src/newt/classes/jogamp/newt/awt/event/AWTParentWindowAdapter.java
index b348220d6..fa494adca 100644
--- a/src/newt/classes/jogamp/newt/awt/event/AWTParentWindowAdapter.java
+++ b/src/newt/classes/jogamp/newt/awt/event/AWTParentWindowAdapter.java
@@ -115,7 +115,7 @@ public class AWTParentWindowAdapter extends AWTWindowAdapter implements java.awt
}
final Window newtWindow = getNewtWindow();
if(newtWindow.getDelegatedWindow() instanceof DriverUpdatePosition) {
- ((DriverUpdatePosition)newtWindow.getDelegatedWindow()).updatePosition();
+ ((DriverUpdatePosition)newtWindow.getDelegatedWindow()).updatePosition(0, 0);
}
}
diff --git a/src/newt/classes/jogamp/newt/driver/DriverUpdatePosition.java b/src/newt/classes/jogamp/newt/driver/DriverUpdatePosition.java
index bb846c081..2ec327187 100644
--- a/src/newt/classes/jogamp/newt/driver/DriverUpdatePosition.java
+++ b/src/newt/classes/jogamp/newt/driver/DriverUpdatePosition.java
@@ -4,6 +4,12 @@ package jogamp.newt.driver;
* Interface tagging driver requirement of absolute positioning, ie. depend on parent position.
*/
public interface DriverUpdatePosition {
- /** Programmatic update the position */
- void updatePosition();
+ /**
+ * Programmatic update the top-left corner
+ * of the client area relative to it's parent.
+ *
+ * @param x x-component
+ * @param y y-component
+ **/
+ void updatePosition(int x, int y);
}
diff --git a/src/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java b/src/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java
index a15c9cded..653e90e3b 100644
--- a/src/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java
+++ b/src/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java
@@ -191,20 +191,25 @@ public class WindowDriver extends WindowImpl implements MutableSurface, DriverCl
}
}
+ private boolean useParent(NativeWindow parent) { return null != parent && 0 != parent.getWindowHandle(); }
+
@Override
- public void updatePosition() {
+ public void updatePosition(int x, int y) {
final long handle = getWindowHandle();
if( 0 != handle && !isOffscreenInstance ) {
- final Point pS = getLocationOnScreenImpl(0, 0);
+ final NativeWindow parent = getParent();
+ final boolean useParent = useParent(parent);
+ final int pX=parent.getX(), pY=parent.getY();
+ final Point p0S = getLocationOnScreenImpl(x, y, parent, useParent);
if(DEBUG_IMPLEMENTATION) {
- System.err.println("MacWindow: updatePosition() -> abs child-client-pos: "+pS);
+ System.err.println("MacWindow: updatePosition() parent["+useParent+" "+pX+"/"+pY+"] "+x+"/"+y+" -> "+x+"/"+y+" rel-client-pos, "+p0S+" screen-client-pos");
}
OSXUtil.RunOnMainThread(false, new Runnable() {
public void run() {
- setWindowClientTopLeftPoint0(handle, pS.getX(), pS.getY());
+ setWindowClientTopLeftPoint0(handle, p0S.getX(), p0S.getY(), isVisible());
} } );
// no native event (fullscreen, some reparenting)
- positionChanged(true, pS.getX(), pS.getY());
+ positionChanged(true, x, y);
}
}
@@ -213,15 +218,16 @@ public class WindowDriver extends WindowImpl implements MutableSurface, DriverCl
final long handle = getWindowHandle();
if( 0 != handle && !isOffscreenInstance ) {
final NativeWindow parent = getParent();
- final boolean useParent = null != parent && 0 != parent.getWindowHandle() ;
+ final boolean useParent = useParent(parent);
if( useParent && ( getWidth() != newWidth || getHeight() != newHeight ) ) {
- final Point p0S = getLocationOnScreenImpl(0, 0);
+ final int x=getX(), y=getY();
+ final Point p0S = getLocationOnScreenImpl(x, y, parent, useParent);
if(DEBUG_IMPLEMENTATION) {
- System.err.println("MacWindow: sizeChanged() "+newWidth+"x"+newHeight+" -> abs child-client-pos "+p0S);
+ System.err.println("MacWindow: sizeChanged() parent["+useParent+" "+x+"/"+y+"] "+getX()+"/"+getY()+" "+newWidth+"x"+newHeight+" -> "+p0S+" screen-client-pos");
}
OSXUtil.RunOnMainThread(false, new Runnable() {
public void run() {
- setWindowClientTopLeftPoint0(getWindowHandle(), p0S.getX(), p0S.getY());
+ setWindowClientTopLeftPoint0(getWindowHandle(), p0S.getX(), p0S.getY(), isVisible());
} } );
}
}
@@ -237,9 +243,9 @@ public class WindowDriver extends WindowImpl implements MutableSurface, DriverCl
pClientLevelOnSreen = new Point(0, 0);
} else {
final NativeWindow parent = getParent();
- final boolean useParent = null != parent && 0 != parent.getWindowHandle() ;
+ final boolean useParent = useParent(parent);
if( useParent ) {
- pClientLevelOnSreen = getLocationOnScreenImpl(x, y);
+ pClientLevelOnSreen = getLocationOnScreenImpl(x, y, parent, useParent);
} else {
pClientLevelOnSreen = new Point(x, y);
}
@@ -260,7 +266,9 @@ public class WindowDriver extends WindowImpl implements MutableSurface, DriverCl
// Thread.dumpStack();
}
- if( 0 != ( FLAG_CHANGE_VISIBILITY & flags) && 0 == ( FLAG_IS_VISIBLE & flags) ) {
+ final boolean setVisible = 0 != ( FLAG_IS_VISIBLE & flags);
+
+ if( 0 != ( FLAG_CHANGE_VISIBILITY & flags) && !setVisible ) {
if ( !isOffscreenInstance ) {
OSXUtil.RunOnMainThread(false, new Runnable() {
public void run() {
@@ -271,13 +279,12 @@ public class WindowDriver extends WindowImpl implements MutableSurface, DriverCl
visibleChanged(true, false);
}
}
- if( 0 == getWindowHandle() && 0 != ( FLAG_IS_VISIBLE & flags) ||
+ if( 0 == getWindowHandle() && setVisible ||
0 != ( FLAG_CHANGE_DECORATION & flags) ||
0 != ( FLAG_CHANGE_PARENTING & flags) ||
0 != ( FLAG_CHANGE_FULLSCREEN & flags) ) {
- final boolean setVisible = 0 != ( FLAG_IS_VISIBLE & flags);
if(isOffscreenInstance) {
- createWindow(true, 0 != getWindowHandle(), pClientLevelOnSreen, 64, 64, false, setVisible, false);
+ createWindow(true, 0 != getWindowHandle(), pClientLevelOnSreen, 64, 64, false, false, false);
} else {
createWindow(false, 0 != getWindowHandle(), pClientLevelOnSreen, width, height,
0 != ( FLAG_IS_FULLSCREEN & flags), setVisible, 0 != ( FLAG_IS_ALWAYSONTOP & flags));
@@ -287,14 +294,14 @@ public class WindowDriver extends WindowImpl implements MutableSurface, DriverCl
if( !isOffscreenInstance ) {
OSXUtil.RunOnMainThread(false, new Runnable() {
public void run() {
- setWindowClientTopLeftPointAndSize0(getWindowHandle(), pClientLevelOnSreen.getX(), pClientLevelOnSreen.getY(), width, height);
+ setWindowClientTopLeftPointAndSize0(getWindowHandle(), pClientLevelOnSreen.getX(), pClientLevelOnSreen.getY(), width, height, setVisible);
} } );
} // else offscreen size is realized via recreation
// no native event (fullscreen, some reparenting)
positionChanged(true, x, y);
sizeChanged(true, width, height, false);
}
- if( 0 != ( FLAG_CHANGE_VISIBILITY & flags) && 0 != ( FLAG_IS_VISIBLE & flags) ) {
+ if( 0 != ( FLAG_CHANGE_VISIBILITY & flags) && setVisible ) {
if( !isOffscreenInstance ) {
OSXUtil.RunOnMainThread(false, new Runnable() {
public void run() {
@@ -318,18 +325,18 @@ public class WindowDriver extends WindowImpl implements MutableSurface, DriverCl
@Override
protected Point getLocationOnScreenImpl(int x, int y) {
final NativeWindow parent = getParent();
- final boolean useParent = null != parent && 0 != parent.getWindowHandle() ;
+ final boolean useParent = useParent(parent);
+ return getLocationOnScreenImpl(x, y, parent, useParent);
+ }
+ private Point getLocationOnScreenImpl(final int x, final int y, final NativeWindow parent, final boolean useParent) {
if( !useParent && !isOffscreenInstance && 0 != surfaceHandle) {
return OSXUtil.GetLocationOnScreen(surfaceHandle, true, x, y);
}
final Point p = new Point(x, y);
- // min val is 0
- p.setX(Math.max(p.getX(), 0));
- p.setY(Math.max(p.getY(), 0));
if( useParent ) {
- p.translate(parent.getLocationOnScreen(null));
+ p.translate( parent.getLocationOnScreen(null) );
}
return p;
}
@@ -434,10 +441,6 @@ public class WindowDriver extends WindowImpl implements MutableSurface, DriverCl
final PointImmutable pS, final int width, final int height,
final boolean fullscreen, final boolean visible, final boolean alwaysOnTop) {
- if( 0 != getWindowHandle() && !recreate ) {
- return;
- }
-
if(DEBUG_IMPLEMENTATION) {
System.err.println("MacWindow.createWindow on thread "+Thread.currentThread().getName()+
": offscreen "+offscreenInstance+", recreate "+recreate+
@@ -485,7 +488,7 @@ public class WindowDriver extends WindowImpl implements MutableSurface, DriverCl
public void run() {
initWindow0( parentWin, newWin,
pS.getX(), pS.getY(), width, height,
- isOpaque, fullscreen, visible, offscreenInstance, getScreen().getIndex(), surfaceHandle);
+ isOpaque, fullscreen, visible, getScreen().getIndex(), surfaceHandle);
if( offscreenInstance ) {
orderOut0(0!=parentWin ? parentWin : newWin);
} else {
@@ -504,15 +507,14 @@ public class WindowDriver extends WindowImpl implements MutableSurface, DriverCl
private native long createWindow0(int x, int y, int w, int h, boolean fullscreen, int windowStyle, int backingStoreType, int screen_idx, long view);
/** Must be called on Main-Thread */
private native void initWindow0(long parentWindow, long window, int x, int y, int w, int h,
- boolean opaque, boolean fullscreen, boolean visible, boolean offscreen,
- int screen_idx, long view);
+ boolean opaque, boolean fullscreen, boolean visible, int screen_idx, long view);
private native boolean lockSurface0(long window, long view);
private native boolean unlockSurface0(long window, long view);
/** Must be called on Main-Thread */
private native void requestFocus0(long window, boolean force);
/** Must be called on Main-Thread */
private native void resignFocus0(long window);
- /** Must be called on Main-Thread. In case of a child window, it actually only issues orderBack(..) */
+ /** Must be called on Main-Thread. In case this is a child window and parent is still visible, orderBack(..) is issued instead of orderOut(). */
private native void orderOut0(long window);
/** Must be called on Main-Thread */
private native void orderFront0(long window);
@@ -524,9 +526,9 @@ public class WindowDriver extends WindowImpl implements MutableSurface, DriverCl
/** Must be called on Main-Thread */
private native void changeContentView0(long parentWindowOrView, long window, long view);
/** Must be called on Main-Thread */
- private native void setWindowClientTopLeftPointAndSize0(long window, int x, int y, int w, int h);
+ private native void setWindowClientTopLeftPointAndSize0(long window, int x, int y, int w, int h, boolean display);
/** Must be called on Main-Thread */
- private native void setWindowClientTopLeftPoint0(long window, int x, int y);
+ private native void setWindowClientTopLeftPoint0(long window, int x, int y, boolean display);
/** Must be called on Main-Thread */
private native void setAlwaysOnTop0(long window, boolean atop);
private static native Object getLocationOnScreen0(long windowHandle, int src_x, int src_y);
diff --git a/src/newt/native/MacWindow.m b/src/newt/native/MacWindow.m
index e3f4eae34..c0552216e 100644
--- a/src/newt/native/MacWindow.m
+++ b/src/newt/native/MacWindow.m
@@ -100,7 +100,36 @@ static int getRetainCount(NSObject * obj) {
}
#endif
-static void changeContentView(JNIEnv *env, jobject javaWindowObject, NSView *pview, NewtMacWindow *win, NewtView *newView) {
+static void setJavaWindowObject(JNIEnv *env, jobject newJavaWindowObject, NewtView *view, BOOL enable) {
+ DBG_PRINT( "setJavaWindowObject.0: View %p\n", view);
+ if( !enable) {
+ jobject globJavaWindowObject = [view getJavaWindowObject];
+ if( NULL != globJavaWindowObject ) {
+ DBG_PRINT( "setJavaWindowObject.1: View %p - Clear old javaWindowObject %p\n", view, globJavaWindowObject);
+ (*env)->DeleteGlobalRef(env, globJavaWindowObject);
+ [view setJavaWindowObject: NULL];
+ }
+ } else if( NULL != newJavaWindowObject ) {
+ DBG_PRINT( "setJavaWindowObject.2: View %p - Set new javaWindowObject %p\n", view, newJavaWindowObject);
+ jobject globJavaWindowObject = (*env)->NewGlobalRef(env, newJavaWindowObject);
+ [view setJavaWindowObject: globJavaWindowObject];
+ {
+ JavaVM *jvmHandle = NULL;
+ int jvmVersion = 0;
+
+ if(0 != (*env)->GetJavaVM(env, &jvmHandle)) {
+ jvmHandle = NULL;
+ } else {
+ jvmVersion = (*env)->GetVersion(env);
+ }
+ [view setJVMHandle: jvmHandle];
+ [view setJVMVersion: jvmVersion];
+ }
+ }
+ DBG_PRINT( "setJavaWindowObject.X: View %p\n", view);
+}
+
+static void changeContentView(JNIEnv *env, jobject javaWindowObject, NSView *pview, NewtMacWindow *win, NewtView *newView, BOOL setJavaWindow) {
NSView* oldNSView = [win contentView];
NewtView* oldNewtView = NULL;
#ifdef VERBOSE_ON
@@ -132,10 +161,8 @@ NS_ENDHANDLER
dbgIdx++, win, oldNSView, getRetainCount(oldNSView), NULL!=oldNewtView, newView, getRetainCount(newView));
if( NULL != oldNewtView ) {
- jobject globJavaWindowObject = [oldNewtView getJavaWindowObject];
- (*env)->DeleteGlobalRef(env, globJavaWindowObject);
- [oldNewtView setJavaWindowObject: NULL];
[oldNewtView setDestroyNotifySent: false];
+ setJavaWindowObject(env, NULL, oldNewtView, NO);
}
[oldNSView removeFromSuperviewWithoutNeedingDisplay];
}
@@ -143,20 +170,9 @@ NS_ENDHANDLER
dbgIdx++, win, oldNSView, getRetainCount(oldNSView), newView, getRetainCount(newView), [newView isHidden], [newView isHiddenOrHasHiddenAncestor]);
if( NULL!=newView ) {
- jobject globJavaWindowObject = (*env)->NewGlobalRef(env, javaWindowObject);
- [newView setJavaWindowObject: globJavaWindowObject];
[newView setDestroyNotifySent: false];
- {
- JavaVM *jvmHandle = NULL;
- int jvmVersion = 0;
-
- if(0 != (*env)->GetJavaVM(env, &jvmHandle)) {
- jvmHandle = NULL;
- } else {
- jvmVersion = (*env)->GetVersion(env);
- }
- [newView setJVMHandle: jvmHandle];
- [newView setJVMVersion: jvmVersion];
+ if( setJavaWindow ) {
+ setJavaWindowObject(env, javaWindowObject, newView, YES);
}
DBG_PRINT( "changeContentView.%d win %p, view (%p,%d -> %p,%d)\n",
@@ -671,19 +687,19 @@ JNIEXPORT jlong JNICALL Java_jogamp_newt_driver_macosx_WindowDriver_createWindow
*
* Class: jogamp_newt_driver_macosx_WindowDriver
* Method: initWindow0
- * Signature: (JJIIIIZZZZIIJ)V
+ * Signature: (JJIIIIZZZIJ)V
*/
JNIEXPORT void JNICALL Java_jogamp_newt_driver_macosx_WindowDriver_initWindow0
(JNIEnv *env, jobject jthis, jlong parent, jlong window, jint x, jint y, jint w, jint h,
- jboolean opaque, jboolean fullscreen, jboolean visible, jboolean offscreen, jint screen_idx, jlong jview)
+ jboolean opaque, jboolean fullscreen, jboolean visible, jint screen_idx, jlong jview)
{
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
NewtMacWindow* myWindow = (NewtMacWindow*) ((intptr_t) window);
NewtView* myView = (NewtView*) (intptr_t) jview ;
- DBG_PRINT( "initWindow0 - %p (this), %p (parent), %p (window), %d/%d %dx%d, opaque %d, fs %d, visible %d, offscreen %d, screenidx %d, view %p (START)\n",
+ DBG_PRINT( "initWindow0 - %p (this), %p (parent), %p (window), %d/%d %dx%d, opaque %d, fs %d, visible %d, screenidx %d, view %p (START)\n",
(void*)(intptr_t)jthis, (void*)(intptr_t)parent, myWindow, (int)x, (int)y, (int)w, (int)h,
- (int) opaque, (int)fullscreen, (int)visible, (int)offscreen, (int)screen_idx, myView);
+ (int) opaque, (int)fullscreen, (int)visible, (int)screen_idx, myView);
NSArray *screens = [NSScreen screens];
if(screen_idx<0) screen_idx=0;
@@ -753,7 +769,7 @@ NS_ENDHANDLER
dbgIdx++, myWindow, getRetainCount(myWindow), myView, getRetainCount(myView), [myWindow isVisible]);
// Set the content view
- changeContentView(env, jthis, parentView, myWindow, myView);
+ changeContentView(env, jthis, parentView, myWindow, myView, NO);
DBG_PRINT( "initWindow0.%d - %p,%d view %p,%d, isVisible %d\n",
dbgIdx++, myWindow, getRetainCount(myWindow), myView, getRetainCount(myView), [myWindow isVisible]);
@@ -762,8 +778,8 @@ NS_ENDHANDLER
[myWindow attachToParent: parentWindow];
}
- DBG_PRINT( "initWindow0.%d - %p,%d view %p,%d, isVisible %d\n",
- dbgIdx++, myWindow, getRetainCount(myWindow), myView, getRetainCount(myView), [myWindow isVisible]);
+ DBG_PRINT( "initWindow0.%d - %p,%d view %p,%d, isVisible %d, visible %d\n",
+ dbgIdx++, myWindow, getRetainCount(myWindow), myView, getRetainCount(myView), [myWindow isVisible], visible);
// Immediately re-position this window based on an upper-left coordinate system
setWindowClientTopLeftPointAndSize(myWindow, x, y, w, h, NO);
@@ -791,7 +807,7 @@ NS_ENDHANDLER
dbgIdx++, myWindow, getRetainCount(myWindow), myView, getRetainCount(myView), [myWindow isVisible]);
// visible on front
- if( JNI_TRUE == visible && JNI_FALSE == offscreen ) {
+ if( visible ) {
[myWindow orderFront: myWindow];
}
@@ -819,6 +835,12 @@ NS_ENDHANDLER
DBG_PRINT( "initWindow0.X - %p (this), %p (parent): new window: %p, view %p,%d\n",
(void*)(intptr_t)jthis, (void*)(intptr_t)parent, myWindow, myView, getRetainCount(myView));
+ [myView setDestroyNotifySent: false];
+ setJavaWindowObject(env, jthis, myView, YES);
+
+ DBG_PRINT( "initWindow0.X - %p (this), %p (parent): new window: %p, view %p,%d\n",
+ (void*)(intptr_t)jthis, (void*)(intptr_t)parent, myWindow, myView, getRetainCount(myView));
+
[pool release];
}
@@ -845,13 +867,8 @@ JNIEXPORT void JNICALL Java_jogamp_newt_driver_macosx_WindowDriver_close0
if(NULL!=mView) {
// cleanup view
- jobject javaWindowObject = [mView getJavaWindowObject];
[mView setDestroyNotifySent: true];
- if(NULL!=javaWindowObject) {
- DBG_PRINT( "windowClose.0: Clear global javaWindowObject reference (%p)\n", javaWindowObject);
- (*env)->DeleteGlobalRef(env, javaWindowObject);
- [mView setJavaWindowObject: NULL];
- }
+ setJavaWindowObject(env, NULL, mView, NO);
}
NS_DURING
@@ -1007,10 +1024,11 @@ JNIEXPORT void JNICALL Java_jogamp_newt_driver_macosx_WindowDriver_orderOut0
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
NSWindow* mWin = (NSWindow*) ((intptr_t) window);
NSWindow* pWin = [mWin parentWindow];
+ BOOL pWinVisible = NULL != pWin ? [pWin isVisible] : 0;
- DBG_PRINT( "orderOut0 - window: (parent %p) %p (START)\n", pWin, mWin);
+ DBG_PRINT( "orderOut0 - window: (parent %p visible %d) %p visible %d (START)\n", pWin, pWinVisible, mWin, [mWin isVisible]);
- if(NULL == pWin) {
+ if( NULL == pWin || !pWinVisible ) {
[mWin orderOut: mWin];
} else {
[mWin orderBack: mWin];
@@ -1097,7 +1115,7 @@ JNIEXPORT void JNICALL Java_jogamp_newt_driver_macosx_WindowDriver_changeContent
}
}
- changeContentView(env, jthis, pView, win, newView);
+ changeContentView(env, jthis, pView, win, newView, YES);
DBG_PRINT( "changeContentView0.X\n");
@@ -1107,17 +1125,17 @@ JNIEXPORT void JNICALL Java_jogamp_newt_driver_macosx_WindowDriver_changeContent
/*
* Class: jogamp_newt_driver_macosx_WindowDriver
* Method: setWindowClientTopLeftPointAndSize0
- * Signature: (JIIII)V
+ * Signature: (JIIIIZ)V
*/
JNIEXPORT void JNICALL Java_jogamp_newt_driver_macosx_WindowDriver_setWindowClientTopLeftPointAndSize0
- (JNIEnv *env, jobject unused, jlong window, jint x, jint y, jint w, jint h)
+ (JNIEnv *env, jobject unused, jlong window, jint x, jint y, jint w, jint h, jboolean display)
{
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
NewtMacWindow* mWin = (NewtMacWindow*) ((intptr_t) window);
DBG_PRINT( "setWindowClientTopLeftPointAndSize - window: %p (START)\n", mWin);
- setWindowClientTopLeftPointAndSize(mWin, x, y, w, h, YES);
+ setWindowClientTopLeftPointAndSize(mWin, x, y, w, h, display);
DBG_PRINT( "setWindowClientTopLeftPointAndSize - window: %p (END)\n", mWin);
@@ -1127,17 +1145,17 @@ JNIEXPORT void JNICALL Java_jogamp_newt_driver_macosx_WindowDriver_setWindowClie
/*
* Class: jogamp_newt_driver_macosx_WindowDriver
* Method: setWindowClientTopLeftPoint0
- * Signature: (JII)V
+ * Signature: (JIIZ)V
*/
JNIEXPORT void JNICALL Java_jogamp_newt_driver_macosx_WindowDriver_setWindowClientTopLeftPoint0
- (JNIEnv *env, jobject unused, jlong window, jint x, jint y)
+ (JNIEnv *env, jobject unused, jlong window, jint x, jint y, jboolean display)
{
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
NewtMacWindow* mWin = (NewtMacWindow*) ((intptr_t) window);
DBG_PRINT( "setWindowClientTopLeftPoint - window: %p (START)\n", mWin);
- setWindowClientTopLeftPoint(mWin, x, y, YES);
+ setWindowClientTopLeftPoint(mWin, x, y, display);
DBG_PRINT( "setWindowClientTopLeftPoint - window: %p (END)\n", mWin);