diff options
author | Sven Gothel <[email protected]> | 2011-09-27 14:57:20 +0200 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2011-09-27 14:57:20 +0200 |
commit | ac49f30cde53f75d74a9e605dbc255df5852bdc2 (patch) | |
tree | 8e9b4e285c94c36d7f83e317fc9269241dda78b2 /src/newt/classes/jogamp | |
parent | 563ae7d45cf47e1f8f2dc2d85bb139b3214eee90 (diff) |
NEWT/OSX: 'Better' child window positioning, still, after reparenting into parent,
a white window rectangle remains.
.. we also need to understand the absolute screen position better,
ie. when required and when not (at window creation currently).
Diffstat (limited to 'src/newt/classes/jogamp')
-rw-r--r-- | src/newt/classes/jogamp/newt/driver/macosx/MacWindow.java | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/newt/classes/jogamp/newt/driver/macosx/MacWindow.java b/src/newt/classes/jogamp/newt/driver/macosx/MacWindow.java index 8fe32029c..b34f9a26c 100644 --- a/src/newt/classes/jogamp/newt/driver/macosx/MacWindow.java +++ b/src/newt/classes/jogamp/newt/driver/macosx/MacWindow.java @@ -200,8 +200,10 @@ public class MacWindow extends WindowImpl { } } { + // On MacOSX the absolute position is required to position + // a window - even for a child window! final NativeWindow parent = getParent(); - if(null != parent) { + if( null != parent && 0 != parent.getWindowHandle() ) { final Point p = parent.getLocationOnScreen(null); _x += p.getX(); _y += p.getY(); @@ -218,7 +220,9 @@ public class MacWindow extends WindowImpl { if( getWindowHandle() == 0 ) { if( 0 != ( FLAG_IS_VISIBLE & flags) ) { - createWindow(false, _x, _y, width, height, 0 != ( FLAG_IS_FULLSCREEN & flags)); + // FIXME: for some reason we do not need (or can use) + // the absolute position at creation time .. need to determine the reason/mechanics. + createWindow(false, x, y, width, height, 0 != ( FLAG_IS_FULLSCREEN & flags)); this.x = x; this.y = y; visibleChanged(false, true); // no native event .. @@ -237,6 +241,8 @@ public class MacWindow extends WindowImpl { } else if( 0 != ( FLAG_CHANGE_DECORATION & flags) || 0 != ( FLAG_CHANGE_PARENTING & flags) || 0 != ( FLAG_CHANGE_FULLSCREEN & flags) ) { + // FIXME: for some reason we do not need (or can use) + // the absolute position at creation time .. need to determine the reason/mechanics. createWindow(true, x, y, width, height, 0 != ( FLAG_IS_FULLSCREEN & flags)); } if(x>=0 && y>=0) { |