Skip to content
This repository has been archived by the owner on Oct 30, 2023. It is now read-only.

Commit

Permalink
fix: pend bounds change when moving BrowserWindows (electron#33288)
Browse files Browse the repository at this point in the history
* fix: ensure bounds changes apply when moving windows

* chore: remove unused queue include
  • Loading branch information
codebytere authored and khalwa committed Feb 22, 2023
1 parent e1a0806 commit 2d10456
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 0 deletions.
7 changes: 7 additions & 0 deletions shell/browser/native_window_views.cc
Expand Up @@ -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.
Expand Down
2 changes: 2 additions & 0 deletions shell/browser/native_window_views.h
Expand Up @@ -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_;
Expand Down
9 changes: 9 additions & 0 deletions shell/browser/native_window_views_win.cc
Expand Up @@ -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: {
Expand Down

0 comments on commit 2d10456

Please sign in to comment.