diff options
author | George Roman <george.roman.99@gmail.com> | 2019-07-31 00:18:27 +0300 |
---|---|---|
committer | George Roman <george.roman.99@gmail.com> | 2019-08-22 10:11:13 +0300 |
commit | f064883e07e7ad27a44d93d03a46a05bb3b6a24a (patch) | |
tree | 1d8fe26b2ea0cda09117f4247e4d788d90a06781 /components/compositing | |
parent | 2a9b2fe027228b7a89c7c284e35795923d3e26b5 (diff) | |
download | servo-f064883e07e7ad27a44d93d03a46a05bb3b6a24a.tar.gz servo-f064883e07e7ad27a44d93d03a46a05bb3b6a24a.zip |
Implement pointerMove webdriver action
Diffstat (limited to 'components/compositing')
-rw-r--r-- | components/compositing/compositor.rs | 20 | ||||
-rw-r--r-- | components/compositing/compositor_thread.rs | 3 |
2 files changed, 14 insertions, 9 deletions
diff --git a/components/compositing/compositor.rs b/components/compositing/compositor.rs index f0474363fa4..192be87e95a 100644 --- a/components/compositing/compositor.rs +++ b/components/compositing/compositor.rs @@ -522,19 +522,21 @@ impl<Window: WindowMethods + ?Sized> IOCompositor<Window> { Msg::WebDriverMouseButtonEvent(mouse_event_type, mouse_button, x, y), ShutdownState::NotShuttingDown, ) => { + let dppx = self.device_pixels_per_page_px(); + let point = dppx.transform_point(Point2D::new(x, y)); self.on_mouse_window_event_class(match mouse_event_type { - MouseEventType::Click => { - MouseWindowEvent::Click(mouse_button, DevicePoint::new(x, y)) - }, - MouseEventType::MouseDown => { - MouseWindowEvent::MouseDown(mouse_button, DevicePoint::new(x, y)) - }, - MouseEventType::MouseUp => { - MouseWindowEvent::MouseUp(mouse_button, DevicePoint::new(x, y)) - }, + MouseEventType::Click => MouseWindowEvent::Click(mouse_button, point), + MouseEventType::MouseDown => MouseWindowEvent::MouseDown(mouse_button, point), + MouseEventType::MouseUp => MouseWindowEvent::MouseUp(mouse_button, point), }); }, + (Msg::WebDriverMouseMoveEvent(x, y), ShutdownState::NotShuttingDown) => { + let dppx = self.device_pixels_per_page_px(); + let point = dppx.transform_point(Point2D::new(x, y)); + self.on_mouse_window_move_event_class(DevicePoint::new(point.x, point.y)); + }, + (Msg::PendingPaintMetric(pipeline_id, epoch), _) => { self.pending_paint_metrics.insert(pipeline_id, epoch); }, diff --git a/components/compositing/compositor_thread.rs b/components/compositing/compositor_thread.rs index e10aff78844..f5a14352c96 100644 --- a/components/compositing/compositor_thread.rs +++ b/components/compositing/compositor_thread.rs @@ -110,6 +110,8 @@ pub enum Msg { LoadComplete(TopLevelBrowsingContextId), /// WebDriver mouse button event WebDriverMouseButtonEvent(MouseEventType, MouseButton, f32, f32), + /// WebDriver mouse move event + WebDriverMouseMoveEvent(f32, f32), /// Get Window Informations size and position. GetClientWindow(IpcSender<(DeviceIntSize, DeviceIntPoint)>), @@ -137,6 +139,7 @@ impl Debug for Msg { Msg::PendingPaintMetric(..) => write!(f, "PendingPaintMetric"), Msg::LoadComplete(..) => write!(f, "LoadComplete"), Msg::WebDriverMouseButtonEvent(..) => write!(f, "WebDriverMouseButtonEvent"), + Msg::WebDriverMouseMoveEvent(..) => write!(f, "WebDriverMouseMoveEvent"), Msg::GetClientWindow(..) => write!(f, "GetClientWindow"), Msg::GetScreenSize(..) => write!(f, "GetScreenSize"), Msg::GetScreenAvailSize(..) => write!(f, "GetScreenAvailSize"), |