mirror of
https://github.com/electron/electron.git
synced 2026-04-10 03:01:51 -04:00
fix: pend bounds change when moving BrowserWindows (#33375)
* fix: ensure bounds changes apply when moving windows * chore: remove unused queue include Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
This commit is contained in:
@@ -699,6 +699,13 @@ bool NativeWindowViews::IsFullscreen() const {
|
||||
}
|
||||
|
||||
void NativeWindowViews::SetBounds(const gfx::Rect& bounds, bool animate) {
|
||||
#if BUILDFLAG(IS_WIN)
|
||||
if (is_moving_ || is_resizing_) {
|
||||
pending_bounds_change_ = bounds;
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
|
||||
// On Linux and Windows the minimum and maximum size should be updated with
|
||||
// window size when window is not resizable.
|
||||
|
||||
@@ -303,6 +303,8 @@ class NativeWindowViews : public NativeWindow,
|
||||
// Whether the window is currently being moved.
|
||||
bool is_moving_ = false;
|
||||
|
||||
absl::optional<gfx::Rect> pending_bounds_change_;
|
||||
|
||||
// The color to use as the theme and symbol colors respectively for Window
|
||||
// Controls Overlay if enabled on Windows.
|
||||
SkColor overlay_button_color_;
|
||||
|
||||
@@ -314,6 +314,15 @@ bool NativeWindowViews::PreHandleMSG(UINT message,
|
||||
NotifyWindowMoved();
|
||||
is_moving_ = false;
|
||||
}
|
||||
|
||||
// If the user dragged or moved the window during one or more
|
||||
// calls to window.setBounds(), we want to apply the most recent
|
||||
// one once they are done with the move or resize operation.
|
||||
if (pending_bounds_change_.has_value()) {
|
||||
SetBounds(pending_bounds_change_.value(), false /* animate */);
|
||||
pending_bounds_change_.reset();
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
case WM_MOVING: {
|
||||
|
||||
Reference in New Issue
Block a user