fix: WCO pressed background state updates (#34771)
This commit is contained in:
parent
47d8d4cc5c
commit
7ec88584b5
2 changed files with 13 additions and 3 deletions
|
@ -11,6 +11,7 @@
|
||||||
#include "shell/browser/browser.h"
|
#include "shell/browser/browser.h"
|
||||||
#include "shell/browser/native_window_views.h"
|
#include "shell/browser/native_window_views.h"
|
||||||
#include "shell/browser/ui/views/root_view.h"
|
#include "shell/browser/ui/views/root_view.h"
|
||||||
|
#include "shell/browser/ui/views/win_frame_view.h"
|
||||||
#include "shell/common/electron_constants.h"
|
#include "shell/common/electron_constants.h"
|
||||||
#include "ui/display/display.h"
|
#include "ui/display/display.h"
|
||||||
#include "ui/display/win/screen_win.h"
|
#include "ui/display/win/screen_win.h"
|
||||||
|
@ -421,7 +422,7 @@ void NativeWindowViews::HandleSizeEvent(WPARAM w_param, LPARAM l_param) {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SIZE_RESTORED:
|
case SIZE_RESTORED: {
|
||||||
switch (last_window_state_) {
|
switch (last_window_state_) {
|
||||||
case ui::SHOW_STATE_MAXIMIZED:
|
case ui::SHOW_STATE_MAXIMIZED:
|
||||||
last_window_state_ = ui::SHOW_STATE_NORMAL;
|
last_window_state_ = ui::SHOW_STATE_NORMAL;
|
||||||
|
@ -439,7 +440,15 @@ void NativeWindowViews::HandleSizeEvent(WPARAM w_param, LPARAM l_param) {
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
// If a given window was minimized/maximized and has since been
|
||||||
|
// restored, ensure the WCO buttons are set to normal state.
|
||||||
|
auto* ncv = widget()->non_client_view();
|
||||||
|
if (IsWindowControlsOverlayEnabled() && ncv) {
|
||||||
|
auto* frame_view = static_cast<WinFrameView*>(ncv->frame_view());
|
||||||
|
frame_view->caption_button_container()->ResetWindowControls();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -46,6 +46,9 @@ class WinCaptionButtonContainer : public views::View,
|
||||||
// time, and both are disabled in tablet UI mode.
|
// time, and both are disabled in tablet UI mode.
|
||||||
void UpdateButtons();
|
void UpdateButtons();
|
||||||
|
|
||||||
|
// Reset window button states to STATE_NORMAL.
|
||||||
|
void ResetWindowControls();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// views::View:
|
// views::View:
|
||||||
void AddedToWidget() override;
|
void AddedToWidget() override;
|
||||||
|
@ -55,8 +58,6 @@ class WinCaptionButtonContainer : public views::View,
|
||||||
void OnWidgetBoundsChanged(views::Widget* widget,
|
void OnWidgetBoundsChanged(views::Widget* widget,
|
||||||
const gfx::Rect& new_bounds) override;
|
const gfx::Rect& new_bounds) override;
|
||||||
|
|
||||||
void ResetWindowControls();
|
|
||||||
|
|
||||||
WinFrameView* const frame_view_;
|
WinFrameView* const frame_view_;
|
||||||
WinCaptionButton* const minimize_button_;
|
WinCaptionButton* const minimize_button_;
|
||||||
WinCaptionButton* const maximize_button_;
|
WinCaptionButton* const maximize_button_;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue