fix: snapped window restoring to correct position (#48438)

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
This commit is contained in:
trop[bot] 2025-10-03 00:11:53 +02:00 committed by GitHub
commit 9d97988c05
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -509,7 +509,7 @@ void NativeWindowViews::HandleSizeEvent(WPARAM w_param, LPARAM l_param) {
WINDOWPLACEMENT wp; WINDOWPLACEMENT wp;
wp.length = sizeof(WINDOWPLACEMENT); wp.length = sizeof(WINDOWPLACEMENT);
if (GetWindowPlacement(GetAcceleratedWidget(), &wp)) { if (GetWindowPlacement(GetAcceleratedWidget(), &wp) && !was_snapped_) {
last_normal_placement_bounds_ = gfx::Rect(wp.rcNormalPosition); last_normal_placement_bounds_ = gfx::Rect(wp.rcNormalPosition);
} }
@ -518,11 +518,9 @@ void NativeWindowViews::HandleSizeEvent(WPARAM w_param, LPARAM l_param) {
if (w_param == SIZE_MAXIMIZED && if (w_param == SIZE_MAXIMIZED &&
last_window_state_ != ui::mojom::WindowShowState::kMaximized) { last_window_state_ != ui::mojom::WindowShowState::kMaximized) {
if (last_window_state_ == ui::mojom::WindowShowState::kMinimized) { if (last_window_state_ == ui::mojom::WindowShowState::kMinimized) {
if (was_snapped_) {
SetRoundedCorners(false);
was_snapped_ = false;
}
NotifyWindowRestore(); NotifyWindowRestore();
if (was_snapped_)
was_snapped_ = false;
} }
last_window_state_ = ui::mojom::WindowShowState::kMaximized; last_window_state_ = ui::mojom::WindowShowState::kMaximized;
NotifyWindowMaximize(); NotifyWindowMaximize();
@ -545,12 +543,10 @@ void NativeWindowViews::HandleSizeEvent(WPARAM w_param, LPARAM l_param) {
last_window_state_ = ui::mojom::WindowShowState::kFullscreen; last_window_state_ = ui::mojom::WindowShowState::kFullscreen;
NotifyWindowEnterFullScreen(); NotifyWindowEnterFullScreen();
} else { } else {
if (was_snapped_) {
SetRoundedCorners(false);
was_snapped_ = false;
}
last_window_state_ = ui::mojom::WindowShowState::kNormal; last_window_state_ = ui::mojom::WindowShowState::kNormal;
NotifyWindowRestore(); NotifyWindowRestore();
if (was_snapped_)
was_snapped_ = false;
} }
break; break;
default: default: