< prev index next >

src/java.desktop/macosx/classes/sun/lwawt/LWWindowPeer.java

Print this page

        

*** 541,553 **** @Override public int getState() { return windowState; } @Override public void setMaximizedBounds(Rectangle bounds) { ! // TODO: not implemented } @Override public void setBoundsPrivate(int x, int y, int width, int height) { setBounds(x, y, width, height, SET_BOUNDS | NO_EMBEDDED_CHECK); --- 541,582 ---- @Override public int getState() { return windowState; } + public Rectangle getMaximizedBounds() { + Object target = getTarget(); + return (target instanceof Frame) + ? ((Frame) target).getMaximizedBounds() : null; + } + + public Rectangle getDefaultMaximizedBounds() { + GraphicsConfiguration config = getGraphicsConfiguration(); + Insets insets = ((CGraphicsDevice) config.getDevice()).getScreenInsets(); + Rectangle toBounds = config.getBounds(); + return new Rectangle( + toBounds.x + insets.left, + toBounds.y + insets.top, + toBounds.width - insets.left - insets.right, + toBounds.height - insets.top - insets.bottom); + } + @Override public void setMaximizedBounds(Rectangle bounds) { ! ! bounds = (bounds == null) ! ? getDefaultMaximizedBounds() ! : constrainBounds(bounds); ! platformWindow.setMaximizedBounds( ! bounds.x, bounds.y, bounds.width, bounds.height); ! } ! ! private void updateMaximizedBounds() { ! Rectangle maximizedBounds = getMaximizedBounds(); ! if (maximizedBounds == null) { ! setMaximizedBounds(getDefaultMaximizedBounds()); ! } } @Override public void setBoundsPrivate(int x, int y, int width, int height) { setBounds(x, y, width, height, SET_BOUNDS | NO_EMBEDDED_CHECK);
*** 633,642 **** --- 662,675 ---- // First, update peer's bounds setBounds(x, y, w, h, SET_BOUNDS, false, false); // Second, update the graphics config and surface data final boolean isNewDevice = updateGraphicsDevice(); + if (isNewDevice) { + updateMaximizedBounds(); + } + if (resized || isNewDevice) { replaceSurfaceData(); updateMinimumSize(); }
*** 1056,1065 **** --- 1089,1101 ---- @Override public final void displayChanged() { if (updateGraphicsDevice()) { updateMinimumSize(); } + + updateMaximizedBounds(); + // Replace surface unconditionally, because internal state of the // GraphicsDevice could be changed. replaceSurfaceData(); repaintPeer(); }
< prev index next >