提交 1f0a6230 编写于 作者: S serb

7193214: Consider simplifying CPlatformWindow.setResizable()

Reviewed-by: anthony, denis
上级 5a8ab9f5
...@@ -257,7 +257,7 @@ public final class CPlatformWindow extends CFRetainedResource implements Platfor ...@@ -257,7 +257,7 @@ public final class CPlatformWindow extends CFRetainedResource implements Platfor
validateSurface(); validateSurface();
} }
protected int getInitialStyleBits() { private int getInitialStyleBits() {
// defaults style bits // defaults style bits
int styleBits = DECORATED | HAS_SHADOW | CLOSEABLE | MINIMIZABLE | ZOOMABLE | RESIZABLE; int styleBits = DECORATED | HAS_SHADOW | CLOSEABLE | MINIMIZABLE | ZOOMABLE | RESIZABLE;
...@@ -284,7 +284,6 @@ public final class CPlatformWindow extends CFRetainedResource implements Platfor ...@@ -284,7 +284,6 @@ public final class CPlatformWindow extends CFRetainedResource implements Platfor
final boolean resizable = isFrame ? ((Frame)target).isResizable() : (isDialog ? ((Dialog)target).isResizable() : false); final boolean resizable = isFrame ? ((Frame)target).isResizable() : (isDialog ? ((Dialog)target).isResizable() : false);
styleBits = SET(styleBits, RESIZABLE, resizable); styleBits = SET(styleBits, RESIZABLE, resizable);
if (!resizable) { if (!resizable) {
styleBits = SET(styleBits, RESIZABLE, false);
styleBits = SET(styleBits, ZOOMABLE, false); styleBits = SET(styleBits, ZOOMABLE, false);
} }
} }
...@@ -379,7 +378,7 @@ public final class CPlatformWindow extends CFRetainedResource implements Platfor ...@@ -379,7 +378,7 @@ public final class CPlatformWindow extends CFRetainedResource implements Platfor
} }
// this is the counter-point to -[CWindow _nativeSetStyleBit:] // this is the counter-point to -[CWindow _nativeSetStyleBit:]
protected void setStyleBits(final int mask, final boolean value) { private void setStyleBits(final int mask, final boolean value) {
nativeSetNSWindowStyleBits(getNSWindowPtr(), mask, value ? mask : 0); nativeSetNSWindowStyleBits(getNSWindowPtr(), mask, value ? mask : 0);
} }
...@@ -656,15 +655,8 @@ public final class CPlatformWindow extends CFRetainedResource implements Platfor ...@@ -656,15 +655,8 @@ public final class CPlatformWindow extends CFRetainedResource implements Platfor
} }
@Override @Override
public void setResizable(boolean resizable) { public void setResizable(final boolean resizable) {
setStyleBits(RESIZABLE, resizable); setStyleBits(RESIZABLE, resizable);
// Re-apply the size constraints and the size to ensure the space
// occupied by the grow box is counted properly
peer.updateMinimumSize();
Rectangle bounds = peer.getBounds();
setBounds(bounds.x, bounds.y, bounds.width, bounds.height);
} }
@Override @Override
......
...@@ -160,6 +160,10 @@ AWT_NS_WINDOW_IMPLEMENTATION ...@@ -160,6 +160,10 @@ AWT_NS_WINDOW_IMPLEMENTATION
BOOL resizable = IS(bits, RESIZABLE); BOOL resizable = IS(bits, RESIZABLE);
[self updateMinMaxSize:resizable]; [self updateMinMaxSize:resizable];
[self.nsWindow setShowsResizeIndicator:resizable]; [self.nsWindow setShowsResizeIndicator:resizable];
// Zoom button should be disabled, if the window is not resizable,
// otherwise button should be restored to initial state.
BOOL zoom = resizable && IS(bits, ZOOMABLE);
[[self.nsWindow standardWindowButton:NSWindowZoomButton] setEnabled:zoom];
} }
if (IS(mask, HAS_SHADOW)) { if (IS(mask, HAS_SHADOW)) {
...@@ -784,7 +788,7 @@ AWT_ASSERT_NOT_APPKIT_THREAD; ...@@ -784,7 +788,7 @@ AWT_ASSERT_NOT_APPKIT_THREAD;
// calls methods on NSWindow to change other properties, based on the mask // calls methods on NSWindow to change other properties, based on the mask
if (mask & MASK(_METHOD_PROP_BITMASK)) { if (mask & MASK(_METHOD_PROP_BITMASK)) {
[window setPropertiesForStyleBits:bits mask:mask]; [window setPropertiesForStyleBits:newBits mask:mask];
} }
window.styleBits = newBits; window.styleBits = newBits;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册