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() {
|
void NativeWindowViews::Restore() {
|
||||||
|
#if BUILDFLAG(IS_WIN)
|
||||||
|
if (IsMaximized() && transparent()) {
|
||||||
|
SetBounds(restore_bounds_, false);
|
||||||
|
NotifyWindowRestore();
|
||||||
|
UpdateThickFrame();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
widget()->Restore();
|
widget()->Restore();
|
||||||
|
|
||||||
#if BUILDFLAG(IS_WIN)
|
#if BUILDFLAG(IS_WIN)
|
||||||
|
|
|
@ -48,27 +48,26 @@ bool HitTestCaptionButton(WinCaptionButton* button, const gfx::Point& point) {
|
||||||
WinCaptionButtonContainer::WinCaptionButtonContainer(WinFrameView* frame_view)
|
WinCaptionButtonContainer::WinCaptionButtonContainer(WinFrameView* frame_view)
|
||||||
: frame_view_(frame_view),
|
: frame_view_(frame_view),
|
||||||
minimize_button_(AddChildView(CreateCaptionButton(
|
minimize_button_(AddChildView(CreateCaptionButton(
|
||||||
base::BindRepeating(&views::Widget::Minimize,
|
base::BindRepeating(&NativeWindow::Minimize,
|
||||||
base::Unretained(frame_view_->frame())),
|
base::Unretained(frame_view_->window())),
|
||||||
frame_view_,
|
frame_view_,
|
||||||
VIEW_ID_MINIMIZE_BUTTON,
|
VIEW_ID_MINIMIZE_BUTTON,
|
||||||
IDS_APP_ACCNAME_MINIMIZE))),
|
IDS_APP_ACCNAME_MINIMIZE))),
|
||||||
maximize_button_(AddChildView(CreateCaptionButton(
|
maximize_button_(AddChildView(CreateCaptionButton(
|
||||||
base::BindRepeating(&views::Widget::Maximize,
|
base::BindRepeating(&NativeWindow::Maximize,
|
||||||
base::Unretained(frame_view_->frame())),
|
base::Unretained(frame_view_->window())),
|
||||||
frame_view_,
|
frame_view_,
|
||||||
VIEW_ID_MAXIMIZE_BUTTON,
|
VIEW_ID_MAXIMIZE_BUTTON,
|
||||||
IDS_APP_ACCNAME_MAXIMIZE))),
|
IDS_APP_ACCNAME_MAXIMIZE))),
|
||||||
restore_button_(AddChildView(CreateCaptionButton(
|
restore_button_(AddChildView(CreateCaptionButton(
|
||||||
base::BindRepeating(&views::Widget::Restore,
|
base::BindRepeating(&NativeWindow::Restore,
|
||||||
base::Unretained(frame_view_->frame())),
|
base::Unretained(frame_view_->window())),
|
||||||
frame_view_,
|
frame_view_,
|
||||||
VIEW_ID_RESTORE_BUTTON,
|
VIEW_ID_RESTORE_BUTTON,
|
||||||
IDS_APP_ACCNAME_RESTORE))),
|
IDS_APP_ACCNAME_RESTORE))),
|
||||||
close_button_(AddChildView(CreateCaptionButton(
|
close_button_(AddChildView(CreateCaptionButton(
|
||||||
base::BindRepeating(&views::Widget::CloseWithReason,
|
base::BindRepeating(&NativeWindow::Close,
|
||||||
base::Unretained(frame_view_->frame()),
|
base::Unretained(frame_view_->window())),
|
||||||
views::Widget::ClosedReason::kCloseButtonClicked),
|
|
||||||
frame_view_,
|
frame_view_,
|
||||||
VIEW_ID_CLOSE_BUTTON,
|
VIEW_ID_CLOSE_BUTTON,
|
||||||
IDS_APP_ACCNAME_CLOSE))) {
|
IDS_APP_ACCNAME_CLOSE))) {
|
||||||
|
@ -152,7 +151,7 @@ void WinCaptionButtonContainer::UpdateButtons() {
|
||||||
minimize_button_->SetEnabled(minimizable);
|
minimize_button_->SetEnabled(minimizable);
|
||||||
minimize_button_->SetVisible(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();
|
const bool maximizable = frame_view_->window()->IsMaximizable();
|
||||||
restore_button_->SetVisible(is_maximized && maximizable);
|
restore_button_->SetVisible(is_maximized && maximizable);
|
||||||
maximize_button_->SetVisible(!is_maximized && maximizable);
|
maximize_button_->SetVisible(!is_maximized && maximizable);
|
||||||
|
|
Loading…
Add table
Reference in a new issue