diff options
author | Sven Gothel <[email protected]> | 2020-01-15 02:24:25 +0100 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2020-01-15 02:24:25 +0100 |
commit | 85b332e0954af4afc9225eb84d758bee834dc497 (patch) | |
tree | e676dbc40a155d925e617b449fd77882bb4da570 /src/newt/native/MacWindow.m | |
parent | 6d341e110912f9085194cb94ba6f6c358104ee71 (diff) |
Bug 1421: NEWT OSX Invisible: Implement 'Fake invisible child window'
'Fake invisible child window' is implemented by simply moving the window out of sight (viewport).
- orderOut0 needs to use '[mWin orderWindow: NSWindowBelow relativeTo:..' parentWindow
instead of '[mWin orderBack:..', otherwise the whole parent application gets invisible w/ SWT ;-)
- NewtNSWindow may also needs to use parent's Screen instance if moved offscreen,
as the own Screen is invalid (zero size) in this case.
- WindowDriver: Adding special treatment for 'Fake invisible child window' (tagged as such):
-- reconfigureWindowImpl: setWindowClientTopLeftPointAndSize0(..) will be called
using the viewport's max position -> out of sight.
-- screenPositionChanged: ignore the 'new' position
-- sizeChanged: ignore the 'new' size
This sensitive NEWT change set shall benefit other toolkits being used as parentWindow
besides SWT, as this behavior is the same across MacOS.
Diffstat (limited to 'src/newt/native/MacWindow.m')
-rw-r--r-- | src/newt/native/MacWindow.m | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/newt/native/MacWindow.m b/src/newt/native/MacWindow.m index a8f196fed..b3961b47a 100644 --- a/src/newt/native/MacWindow.m +++ b/src/newt/native/MacWindow.m @@ -1301,7 +1301,7 @@ JNIEXPORT void JNICALL Java_jogamp_newt_driver_macosx_WindowDriver_orderOut0 // NSWindowOut: The window is removed from the screen list and otherWin is ignored. // This would remove this window from its parent -> AVOID! // [mWin orderWindow: NSWindowOut relativeTo: [pWin windowNumber]]; - [mWin orderBack: mWin]; + [mWin orderWindow: NSWindowBelow relativeTo: [pWin windowNumber]]; } DBG_PRINT( "orderOut0 - window: (parent %p) %p visible %d (END)\n", pWin, mWin, [mWin isVisible]); |