summaryrefslogtreecommitdiffstats
path: root/src/newt/classes
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2011-09-27 14:57:20 +0200
committerSven Gothel <[email protected]>2011-09-27 14:57:20 +0200
commitac49f30cde53f75d74a9e605dbc255df5852bdc2 (patch)
tree8e9b4e285c94c36d7f83e317fc9269241dda78b2 /src/newt/classes
parent563ae7d45cf47e1f8f2dc2d85bb139b3214eee90 (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')
-rw-r--r--src/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java1
-rw-r--r--src/newt/classes/jogamp/newt/driver/macosx/MacWindow.java10
2 files changed, 9 insertions, 2 deletions
diff --git a/src/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java b/src/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java
index 5a924149c..929980d52 100644
--- a/src/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java
+++ b/src/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java
@@ -55,6 +55,7 @@ import jogamp.newt.awt.event.NewtFactoryAWT;
import javax.swing.MenuSelectionManager;
+@SuppressWarnings("serial")
public class NewtCanvasAWT extends java.awt.Canvas implements WindowClosingProtocol {
public static final boolean DEBUG = Debug.debug("Window");
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) {