mirror of
https://github.com/servo/servo.git
synced 2025-09-19 11:20:09 +01:00
Rename InputEvent::MouseLeave
to InputEvent::MouseLeftViewport
(#38695)
1. `InputEvent::MouseLeave` indicates that mouse has left the viewport (fired by embedder) or iframe (synthesized in Constellationf24f225db8/components/constellation/constellation_webview.rs (L119-L122)
). Its handler in script is named as `handle_mouse_leave_event`, which is very misleading as we have DOM event [mouseleave](https://w3c.github.io/uievents/#event-type-mouseleave). I rename it to `MouseLeftViewport` to be consistent with `WindowEvent::CursorLeft`:f24f225db8/ports/servoshell/desktop/headed_window.rs (L632-L638)
2. Add doc and rename function, such as `handle_mouse_move_event` to `handle_native_mouse_move_event` to be closer to [spec](https://w3c.github.io/uievents/#handle-native-mouse-move). Testing: Just renaming + skipping unnecessary hit-test in simple case. Fixes: Nothing but preparing for #38670 and #38435. --------- Signed-off-by: Euclid Ye <euclid.ye@huawei.com>
This commit is contained in:
parent
8b574539d1
commit
494493ceb7
6 changed files with 33 additions and 27 deletions
|
@ -25,7 +25,7 @@ use servo::webrender_api::ScrollLocation;
|
|||
use servo::webrender_api::units::{DeviceIntPoint, DeviceIntRect, DeviceIntSize, DevicePixel};
|
||||
use servo::{
|
||||
Cursor, ImeEvent, InputEvent, Key, KeyState, KeyboardEvent, Modifiers,
|
||||
MouseButton as ServoMouseButton, MouseButtonAction, MouseButtonEvent, MouseLeaveEvent,
|
||||
MouseButton as ServoMouseButton, MouseButtonAction, MouseButtonEvent, MouseLeftViewportEvent,
|
||||
MouseMoveEvent, NamedKey, OffscreenRenderingContext, RenderingContext, ScreenGeometry, Theme,
|
||||
TouchEvent, TouchEventType, TouchId, WebRenderDebugOption, WebView, WheelDelta, WheelEvent,
|
||||
WheelMode, WindowRenderingContext,
|
||||
|
@ -628,7 +628,9 @@ impl WindowPortsMethods for Window {
|
|||
if webview.rect().contains(point) {
|
||||
webview.notify_input_event(InputEvent::MouseMove(MouseMoveEvent::new(point)));
|
||||
} else if webview.rect().contains(previous_point) {
|
||||
webview.notify_input_event(InputEvent::MouseLeave(MouseLeaveEvent::default()));
|
||||
webview.notify_input_event(InputEvent::MouseLeftViewport(
|
||||
MouseLeftViewportEvent::default(),
|
||||
));
|
||||
}
|
||||
|
||||
self.webview_relative_mouse_point.set(point);
|
||||
|
@ -638,7 +640,9 @@ impl WindowPortsMethods for Window {
|
|||
.rect()
|
||||
.contains(self.webview_relative_mouse_point.get())
|
||||
{
|
||||
webview.notify_input_event(InputEvent::MouseLeave(MouseLeaveEvent::default()));
|
||||
webview.notify_input_event(InputEvent::MouseLeftViewport(
|
||||
MouseLeftViewportEvent::default(),
|
||||
));
|
||||
}
|
||||
},
|
||||
WindowEvent::MouseWheel { delta, .. } => {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue