fix: WCO not working with some window configurations (#45477)
This commit is contained in:
parent
acfc32f534
commit
7373bde546
2 changed files with 18 additions and 10 deletions
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Add table
Reference in a new issue