fix: system-context-menu should only fire in draggable regions (36-x-y) (#46002)

fix: `system-context-menu` should only fire in draggable regions (#45893)

fix: system-context-menu should only fire in draggable regions

Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
This commit is contained in:
Charles Kerr 2025-03-13 04:00:32 -05:00 committed by GitHub
parent 3e5cabde39
commit 1fc3a60655
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 72 additions and 15 deletions

View file

@ -288,15 +288,6 @@ bool NativeWindowViews::PreHandleMSG(UINT message,
return false;
}
case WM_RBUTTONUP: {
if (!has_frame()) {
bool prevent_default = false;
NotifyWindowSystemContextMenu(GET_X_LPARAM(l_param),
GET_Y_LPARAM(l_param), &prevent_default);
return prevent_default;
}
return false;
}
case WM_GETMINMAXINFO: {
WINDOWPLACEMENT wp;
wp.length = sizeof(WINDOWPLACEMENT);

View file

@ -108,6 +108,17 @@ bool ElectronDesktopWindowTreeHostWin::HandleMouseEventForCaption(
return native_window_view_->IsWindowControlsOverlayEnabled();
}
bool ElectronDesktopWindowTreeHostWin::HandleMouseEvent(ui::MouseEvent* event) {
if (event->is_system_menu() && !native_window_view_->has_frame()) {
bool prevent_default = false;
native_window_view_->NotifyWindowSystemContextMenu(event->x(), event->y(),
&prevent_default);
return prevent_default;
}
return views::DesktopWindowTreeHostWin::HandleMouseEvent(event);
}
void ElectronDesktopWindowTreeHostWin::OnNativeThemeUpdated(
ui::NativeTheme* observed_theme) {
HWND hWnd = GetAcceleratedWidget();

View file

@ -40,6 +40,7 @@ class ElectronDesktopWindowTreeHostWin : public views::DesktopWindowTreeHostWin,
bool GetClientAreaInsets(gfx::Insets* insets,
HMONITOR monitor) const override;
bool HandleMouseEventForCaption(UINT message) const override;
bool HandleMouseEvent(ui::MouseEvent* event) override;
// ui::NativeThemeObserver:
void OnNativeThemeUpdated(ui::NativeTheme* observed_theme) override;