diff options
-rw-r--r-- | make/scripts/tests.sh | 16 | ||||
-rw-r--r-- | src/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java | 14 | ||||
-rw-r--r-- | src/test/com/jogamp/opengl/test/junit/newt/event/BaseNewtEventModifiers.java | 18 |
3 files changed, 30 insertions, 18 deletions
diff --git a/make/scripts/tests.sh b/make/scripts/tests.sh index f73a3323d..cbb561e6c 100644 --- a/make/scripts/tests.sh +++ b/make/scripts/tests.sh @@ -599,7 +599,7 @@ function testawtswt() { #testnoawt com.jogamp.opengl.test.junit.jogl.acore.TestSharedContextVBOES2NEWT2 $* #testnoawt com.jogamp.opengl.test.junit.jogl.acore.TestSharedContextVBOES2NEWT3 $* #testnoawt com.jogamp.opengl.test.junit.jogl.acore.TestSharedContextVBOES2NEWT4 $* -testnoawt com.jogamp.opengl.test.junit.jogl.acore.TestSharedContextVBOES2NEWT5 $* +#testnoawt com.jogamp.opengl.test.junit.jogl.acore.TestSharedContextVBOES2NEWT5 $* #testswt com.jogamp.opengl.test.junit.jogl.acore.TestSharedContextVBOES2SWT3 $* #testawt com.jogamp.opengl.test.junit.jogl.acore.TestSharedContextWithJTabbedPaneAWT $* #testawt com.jogamp.opengl.test.junit.jogl.acore.TestSharedExternalContextAWT $* @@ -968,14 +968,14 @@ testnoawt com.jogamp.opengl.test.junit.jogl.acore.TestSharedContextVBOES2NEWT5 $ # 2.4.0 Regressions # # OSX OpenJDK11U -#testawt com.jogamp.opengl.test.junit.newt.event.TestParentingFocus02SwingAWTRobot $* -#testnoawt com.jogamp.opengl.test.junit.newt.parenting.TestParenting01NEWT $* -#testnoawt com.jogamp.opengl.test.junit.newt.parenting.TestParenting02NEWT $* -#testawt com.jogamp.opengl.test.junit.jogl.awt.text.TestAWTTextRendererUseVertexArrayBug464 +# Always #testawt com.jogamp.opengl.test.junit.jogl.newt.TestSwingAWTRobotUsageBeforeJOGLInitBug411 $* -#testawt com.jogamp.opengl.test.junit.newt.event.TestNewtEventModifiersNewtCanvasAWT $* -#testnoawt com.jogamp.opengl.test.junit.newt.parenting.TestTranslucentChildWindowBug632NEWT $* -#testawt com.jogamp.opengl.test.junit.jogl.awt.TestBug816OSXCALayerPos04bAWT $* +testawt com.jogamp.opengl.test.junit.newt.event.TestNewtEventModifiersNewtCanvasAWT $* +#testawt com.jogamp.opengl.test.junit.newt.event.TestParentingFocus02SwingAWTRobot $* +# Sometimes +#testawt com.jogamp.opengl.test.junit.jogl.awt.TestBug572AWT $* +#testawt com.jogamp.opengl.test.junit.jogl.perf.TestPerf001GLJPanelInit02AWT $* +#testawt com.jogamp.opengl.test.junit.newt.event.TestNewtEventModifiersAWTCanvas $* # Linux DRM/GBM # diff --git a/src/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java b/src/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java index 53e05d8a0..18d1ebafa 100644 --- a/src/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java +++ b/src/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java @@ -39,6 +39,7 @@ import com.jogamp.nativewindow.AbstractGraphicsConfiguration; import com.jogamp.nativewindow.GraphicsConfigurationFactory; import com.jogamp.nativewindow.NativeWindow; import com.jogamp.nativewindow.NativeWindowException; +import com.jogamp.nativewindow.OffscreenLayerOption; import com.jogamp.nativewindow.MutableSurface; import com.jogamp.nativewindow.ScalableSurface; import com.jogamp.nativewindow.VisualIDHolder; @@ -523,6 +524,11 @@ public class WindowDriver extends WindowImpl implements MutableSurface, DriverCl private Point getLocationOnScreenByParent(final int x, final int y, final NativeWindow parent) { // return new Point(x, y).translate( parent.getLocationOnScreen(null) ); // Bug 1393: deadlock AppKit + EDT + + // If parent is JAWT on OSX (offscreen), we need to query its non-blocking position + if( parent instanceof OffscreenLayerOption && ((OffscreenLayerOption)parent).isOffscreenLayerSurfaceEnabled() ) { + return new Point(x, y).translate( parent.getLocationOnScreen(null) ); // uses non-blocking specialization + } return new Point(x, y).translate( OSXUtil.GetLocationOnScreen(parent.getWindowHandle(), 0, 0) ); // non-blocking } @@ -542,7 +548,13 @@ public class WindowDriver extends WindowImpl implements MutableSurface, DriverCl // screen position -> rel child window position final Point absPos = new Point(newX, newY); // final Point parentOnScreen = parent.getLocationOnScreen(null); // Bug 1393: deadlock AppKit + EDT - final Point parentOnScreen = OSXUtil.GetLocationOnScreen(parent.getWindowHandle(), 0, 0); // non-blocking + final Point parentOnScreen; + if( parent instanceof OffscreenLayerOption && ((OffscreenLayerOption)parent).isOffscreenLayerSurfaceEnabled() ) { + // If parent is JAWT on OSX (offscreen), we need to query its non-blocking position + parentOnScreen = parent.getLocationOnScreen(null); // uses non-blocking specialization + } else { + parentOnScreen = OSXUtil.GetLocationOnScreen(parent.getWindowHandle(), 0, 0); // non-blocking + } absPos.translate( parentOnScreen.scale(-1, -1) ); if(DEBUG_IMPLEMENTATION) { System.err.println("MacWindow.positionChanged.1 (Screen Pos - CHILD): ("+getThreadName()+"): (defer: "+defer+") "+getX()+"/"+getY()+" -> absPos "+newX+"/"+newY+", parentOnScreen "+parentOnScreen+" -> "+absPos); diff --git a/src/test/com/jogamp/opengl/test/junit/newt/event/BaseNewtEventModifiers.java b/src/test/com/jogamp/opengl/test/junit/newt/event/BaseNewtEventModifiers.java index 5f88d1c6f..3be7a96dc 100644 --- a/src/test/com/jogamp/opengl/test/junit/newt/event/BaseNewtEventModifiers.java +++ b/src/test/com/jogamp/opengl/test/junit/newt/event/BaseNewtEventModifiers.java @@ -388,7 +388,7 @@ public abstract class BaseNewtEventModifiers extends UITestCase { // pay more attention to the NEWT event modifier stuff. @Test(timeout=180000) // TO 3 min - public void testSingleButtonPressAndRelease() throws Exception { + public void test01SingleButtonPressAndRelease() throws Exception { execOffThreadWithOnThreadEventDispatch(new Runnable() { public void run() { try { @@ -398,7 +398,7 @@ public abstract class BaseNewtEventModifiers extends UITestCase { } @Test(timeout=180000) // TO 3 min - public void testSingleButtonPressAndReleaseWithShift() throws Exception { + public void test02SingleButtonPressAndReleaseWithShift() throws Exception { execOffThreadWithOnThreadEventDispatch(new Runnable() { public void run() { try { @@ -408,7 +408,7 @@ public abstract class BaseNewtEventModifiers extends UITestCase { } @Test(timeout=180000) // TO 3 min - public void testSingleButtonPressAndReleaseWithCtrl() throws Exception { + public void test03SingleButtonPressAndReleaseWithCtrl() throws Exception { execOffThreadWithOnThreadEventDispatch(new Runnable() { public void run() { try { @@ -421,7 +421,7 @@ public abstract class BaseNewtEventModifiers extends UITestCase { * The META and ALT tests get too tied up with functions of the window system on X11, * so it's probably best to leave them commented out. @Test(timeout=180000) // TO 3 min - public void testSingleButtonPressAndReleaseWithMeta() throws Exception { + public void test04SingleButtonPressAndReleaseWithMeta() throws Exception { execOffThreadWithOnThreadEventDispatch(new Runnable() { public void run() { try { @@ -431,7 +431,7 @@ public abstract class BaseNewtEventModifiers extends UITestCase { } @Test(timeout=180000) // TO 3 min - public void testSingleButtonPressAndReleaseWithAlt() throws Exception { + public void test05SingleButtonPressAndReleaseWithAlt() throws Exception { execOffThreadWithOnThreadEventDispatch(new Runnable() { public void run() { try { @@ -448,7 +448,7 @@ public abstract class BaseNewtEventModifiers extends UITestCase { * My US keyboard doesn't have an AltGr key, so maybe X is smart * enough to not let this modifier slip through (?). @Test - public void testSingleButtonPressAndReleaseWithAltGraph() throws Exception { + public void test06SingleButtonPressAndReleaseWithAltGraph() throws Exception { execOffThreadWithOnThreadEventDispatch(new Runnable() { public void run() { try { @@ -461,7 +461,7 @@ public abstract class BaseNewtEventModifiers extends UITestCase { //////////////////////////////////////////////////////////////////////////// @Test(timeout=180000) // TO 3 min - public void testHoldOneButtonAndPressAnother() throws Exception { + public void test10HoldOneButtonAndPressAnother() throws Exception { execOffThreadWithOnThreadEventDispatch(new Runnable() { public void run() { try { @@ -471,7 +471,7 @@ public abstract class BaseNewtEventModifiers extends UITestCase { } @Test(timeout=180000) // TO 3 min - public void testPressAllButtonsInSequence() throws Exception { + public void test20PressAllButtonsInSequence() throws Exception { execOffThreadWithOnThreadEventDispatch(new Runnable() { public void run() { try { @@ -481,7 +481,7 @@ public abstract class BaseNewtEventModifiers extends UITestCase { } @Test(timeout=180000) // TO 3 min - public void testSingleButtonClickAndDrag() throws Exception { + public void test30SingleButtonClickAndDrag() throws Exception { execOffThreadWithOnThreadEventDispatch(new Runnable() { public void run() { try { |