aboutsummaryrefslogtreecommitdiffstats
path: root/components/compositing
diff options
context:
space:
mode:
authorGeorge Roman <george.roman.99@gmail.com>2019-07-31 00:18:27 +0300
committerGeorge Roman <george.roman.99@gmail.com>2019-08-22 10:11:13 +0300
commitf064883e07e7ad27a44d93d03a46a05bb3b6a24a (patch)
tree1d8fe26b2ea0cda09117f4247e4d788d90a06781 /components/compositing
parent2a9b2fe027228b7a89c7c284e35795923d3e26b5 (diff)
downloadservo-f064883e07e7ad27a44d93d03a46a05bb3b6a24a.tar.gz
servo-f064883e07e7ad27a44d93d03a46a05bb3b6a24a.zip
Implement pointerMove webdriver action
Diffstat (limited to 'components/compositing')
-rw-r--r--components/compositing/compositor.rs20
-rw-r--r--components/compositing/compositor_thread.rs3
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"),