fix: WCO not working with some window configurations (#45477)

This commit is contained in:
trop[bot] 2025-02-06 13:51:39 +01:00 committed by GitHub
parent acfc32f534
commit 7373bde546
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 18 additions and 10 deletions

View file

@ -701,6 +701,15 @@ void NativeWindowViews::Minimize() {
}
void NativeWindowViews::Restore() {
#if BUILDFLAG(IS_WIN)
if (IsMaximized() && transparent()) {
SetBounds(restore_bounds_, false);
NotifyWindowRestore();
UpdateThickFrame();
return;
}
#endif
widget()->Restore();
#if BUILDFLAG(IS_WIN)

View file

@ -48,27 +48,26 @@ bool HitTestCaptionButton(WinCaptionButton* button, const gfx::Point& point) {
WinCaptionButtonContainer::WinCaptionButtonContainer(WinFrameView* frame_view)
: frame_view_(frame_view),
minimize_button_(AddChildView(CreateCaptionButton(
base::BindRepeating(&views::Widget::Minimize,
base::Unretained(frame_view_->frame())),
base::BindRepeating(&NativeWindow::Minimize,
base::Unretained(frame_view_->window())),
frame_view_,
VIEW_ID_MINIMIZE_BUTTON,
IDS_APP_ACCNAME_MINIMIZE))),
maximize_button_(AddChildView(CreateCaptionButton(
base::BindRepeating(&views::Widget::Maximize,
base::Unretained(frame_view_->frame())),
base::BindRepeating(&NativeWindow::Maximize,
base::Unretained(frame_view_->window())),
frame_view_,
VIEW_ID_MAXIMIZE_BUTTON,
IDS_APP_ACCNAME_MAXIMIZE))),
restore_button_(AddChildView(CreateCaptionButton(
base::BindRepeating(&views::Widget::Restore,
base::Unretained(frame_view_->frame())),
base::BindRepeating(&NativeWindow::Restore,
base::Unretained(frame_view_->window())),
frame_view_,
VIEW_ID_RESTORE_BUTTON,
IDS_APP_ACCNAME_RESTORE))),
close_button_(AddChildView(CreateCaptionButton(
base::BindRepeating(&views::Widget::CloseWithReason,
base::Unretained(frame_view_->frame()),
views::Widget::ClosedReason::kCloseButtonClicked),
base::BindRepeating(&NativeWindow::Close,
base::Unretained(frame_view_->window())),
frame_view_,
VIEW_ID_CLOSE_BUTTON,
IDS_APP_ACCNAME_CLOSE))) {
@ -152,7 +151,7 @@ void WinCaptionButtonContainer::UpdateButtons() {
minimize_button_->SetEnabled(minimizable);
minimize_button_->SetVisible(minimizable);
const bool is_maximized = frame_view_->frame()->IsMaximized();
const bool is_maximized = frame_view_->window()->IsMaximized();
const bool maximizable = frame_view_->window()->IsMaximizable();
restore_button_->SetVisible(is_maximized && maximizable);
maximize_button_->SetVisible(!is_maximized && maximizable);