fix: macOS maximize button shouldn't be disabled just because the window is non-fullscreenable (#40705)
* fix: macOS maximize button shouldn't be disabled just because the window is non-fullscreenable * add test * fix test by enabling maximize button if `resizable && (maximizable || fullscreenable)` instead of `(resizable && maximizable) && fullscreenable`
This commit is contained in:
parent
22970f573b
commit
cc1b64e01c
3 changed files with 24 additions and 3 deletions
|
@ -879,8 +879,7 @@ void NativeWindowMac::SetResizable(bool resizable) {
|
|||
// the maximize button and ensure fullscreenability matches user setting.
|
||||
SetCanResize(resizable);
|
||||
SetFullScreenable(was_fullscreenable);
|
||||
[[window_ standardWindowButton:NSWindowZoomButton]
|
||||
setEnabled:resizable ? was_fullscreenable : false];
|
||||
UpdateZoomButton();
|
||||
}
|
||||
|
||||
bool NativeWindowMac::IsResizable() const {
|
||||
|
@ -908,19 +907,26 @@ bool NativeWindowMac::IsMinimizable() const {
|
|||
|
||||
void NativeWindowMac::SetMaximizable(bool maximizable) {
|
||||
maximizable_ = maximizable;
|
||||
[[window_ standardWindowButton:NSWindowZoomButton] setEnabled:maximizable];
|
||||
UpdateZoomButton();
|
||||
}
|
||||
|
||||
bool NativeWindowMac::IsMaximizable() const {
|
||||
return [[window_ standardWindowButton:NSWindowZoomButton] isEnabled];
|
||||
}
|
||||
|
||||
void NativeWindowMac::UpdateZoomButton() {
|
||||
[[window_ standardWindowButton:NSWindowZoomButton]
|
||||
setEnabled:IsResizable() && (CanMaximize() || IsFullScreenable())];
|
||||
}
|
||||
|
||||
void NativeWindowMac::SetFullScreenable(bool fullscreenable) {
|
||||
SetCollectionBehavior(fullscreenable,
|
||||
NSWindowCollectionBehaviorFullScreenPrimary);
|
||||
// On EL Capitan this flag is required to hide fullscreen button.
|
||||
SetCollectionBehavior(!fullscreenable,
|
||||
NSWindowCollectionBehaviorFullScreenAuxiliary);
|
||||
|
||||
UpdateZoomButton();
|
||||
}
|
||||
|
||||
bool NativeWindowMac::IsFullScreenable() const {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue