fix: disabling and enabling resizability on macOS (#30999)
This commit is contained in:
parent
8d8fcd88f5
commit
6fdf350bea
3 changed files with 21 additions and 4 deletions
|
@ -191,6 +191,7 @@ class NativeWindowMac : public NativeWindow,
|
|||
protected:
|
||||
// views::WidgetDelegate:
|
||||
views::View* GetContentsView() override;
|
||||
bool CanMaximize() const override;
|
||||
|
||||
// ui::NativeThemeObserver:
|
||||
void OnNativeThemeUpdated(ui::NativeTheme* observed_theme) override;
|
||||
|
|
|
@ -1715,31 +1715,35 @@ void NativeWindowMac::SetStyleMask(bool on, NSUInteger flag) {
|
|||
// we explicitly disable resizing while setting it.
|
||||
ScopedDisableResize disable_resize;
|
||||
|
||||
bool was_maximizable = IsMaximizable();
|
||||
if (on)
|
||||
[window_ setStyleMask:[window_ styleMask] | flag];
|
||||
else
|
||||
[window_ setStyleMask:[window_ styleMask] & (~flag)];
|
||||
|
||||
// Change style mask will make the zoom button revert to default, probably
|
||||
// a bug of Cocoa or macOS.
|
||||
SetMaximizable(was_maximizable);
|
||||
SetMaximizable(maximizable_);
|
||||
}
|
||||
|
||||
void NativeWindowMac::SetCollectionBehavior(bool on, NSUInteger flag) {
|
||||
bool was_maximizable = IsMaximizable();
|
||||
if (on)
|
||||
[window_ setCollectionBehavior:[window_ collectionBehavior] | flag];
|
||||
else
|
||||
[window_ setCollectionBehavior:[window_ collectionBehavior] & (~flag)];
|
||||
|
||||
// Change collectionBehavior will make the zoom button revert to default,
|
||||
// probably a bug of Cocoa or macOS.
|
||||
SetMaximizable(was_maximizable);
|
||||
SetMaximizable(maximizable_);
|
||||
}
|
||||
|
||||
views::View* NativeWindowMac::GetContentsView() {
|
||||
return root_view_.get();
|
||||
}
|
||||
|
||||
bool NativeWindowMac::CanMaximize() const {
|
||||
return maximizable_;
|
||||
}
|
||||
|
||||
void NativeWindowMac::OnNativeThemeUpdated(ui::NativeTheme* observed_theme) {
|
||||
base::PostTask(
|
||||
FROM_HERE, {content::BrowserThread::UI},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue