fix: WCO window hover on window controls on Windows (#32672)
* fix: WCO window hover on window controls * Update shell/browser/ui/win/electron_desktop_window_tree_host_win.cc Co-authored-by: Robo <hop2deep@gmail.com> Co-authored-by: Robo <hop2deep@gmail.com>
This commit is contained in:
parent
8b6202b6a8
commit
9a5a45e804
2 changed files with 18 additions and 0 deletions
|
@ -99,4 +99,21 @@ bool ElectronDesktopWindowTreeHostWin::GetClientAreaInsets(
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ElectronDesktopWindowTreeHostWin::HandleMouseEvent(ui::MouseEvent* event) {
|
||||||
|
// Call the default implementation of this method to get the event to its
|
||||||
|
// proper handler.
|
||||||
|
bool handled = views::DesktopWindowTreeHostWin::HandleMouseEvent(event);
|
||||||
|
|
||||||
|
// On WCO-enabled windows, we need to mark non-client mouse moved events as
|
||||||
|
// handled so they don't incorrectly propogate back to the OS.
|
||||||
|
if (native_window_view_->IsWindowControlsOverlayEnabled() &&
|
||||||
|
event->type() == ui::ET_MOUSE_MOVED &&
|
||||||
|
(event->flags() & ui::EF_IS_NON_CLIENT) != 0) {
|
||||||
|
event->SetHandled();
|
||||||
|
handled = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return handled;
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace electron
|
} // namespace electron
|
||||||
|
|
|
@ -36,6 +36,7 @@ class ElectronDesktopWindowTreeHostWin
|
||||||
bool GetDwmFrameInsetsInPixels(gfx::Insets* insets) const override;
|
bool GetDwmFrameInsetsInPixels(gfx::Insets* insets) const override;
|
||||||
bool GetClientAreaInsets(gfx::Insets* insets,
|
bool GetClientAreaInsets(gfx::Insets* insets,
|
||||||
HMONITOR monitor) const override;
|
HMONITOR monitor) const override;
|
||||||
|
bool HandleMouseEvent(ui::MouseEvent* event) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
NativeWindowViews* native_window_view_; // weak ref
|
NativeWindowViews* native_window_view_; // weak ref
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue