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;
wp.length = sizeof(WINDOWPLACEMENT);
if (GetWindowPlacement(GetAcceleratedWidget(), &wp)) {
if (GetWindowPlacement(GetAcceleratedWidget(), &wp) && !was_snapped_) {
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 &&
last_window_state_ != ui::mojom::WindowShowState::kMaximized) {
if (last_window_state_ == ui::mojom::WindowShowState::kMinimized) {
if (was_snapped_) {
SetRoundedCorners(false);
was_snapped_ = false;
}
NotifyWindowRestore();
if (was_snapped_)
was_snapped_ = false;
}
last_window_state_ = ui::mojom::WindowShowState::kMaximized;
NotifyWindowMaximize();
@ -545,12 +543,10 @@ void NativeWindowViews::HandleSizeEvent(WPARAM w_param, LPARAM l_param) {
last_window_state_ = ui::mojom::WindowShowState::kFullscreen;
NotifyWindowEnterFullScreen();
} else {
if (was_snapped_) {
SetRoundedCorners(false);
was_snapped_ = false;
}
last_window_state_ = ui::mojom::WindowShowState::kNormal;
NotifyWindowRestore();
if (was_snapped_)
was_snapped_ = false;
}
break;
default: