diff options
Diffstat (limited to 'components/compositing')
-rw-r--r-- | components/compositing/compositor.rs | 17 | ||||
-rw-r--r-- | components/compositing/compositor_thread.rs | 5 |
2 files changed, 21 insertions, 1 deletions
diff --git a/components/compositing/compositor.rs b/components/compositing/compositor.rs index 98de79cc3f8..7ac80ee4832 100644 --- a/components/compositing/compositor.rs +++ b/components/compositing/compositor.rs @@ -518,6 +518,23 @@ impl<Window: WindowMethods + ?Sized> IOCompositor<Window> { } }, + ( + Msg::WebDriverMouseButtonEvent(mouse_event_type, mouse_button, x, y), + ShutdownState::NotShuttingDown, + ) => { + 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)) + }, + }); + }, + (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 9250d25e5bf..f095ab65b1c 100644 --- a/components/compositing/compositor_thread.rs +++ b/components/compositing/compositor_thread.rs @@ -14,7 +14,7 @@ use msg::constellation_msg::{PipelineId, TopLevelBrowsingContextId}; use net_traits::image::base::Image; use profile_traits::mem; use profile_traits::time; -use script_traits::{AnimationState, ConstellationMsg, EventResult}; +use script_traits::{AnimationState, ConstellationMsg, EventResult, MouseButton, MouseEventType}; use std::fmt::{Debug, Error, Formatter}; use style_traits::viewport::ViewportConstraints; use webrender_api; @@ -106,6 +106,8 @@ pub enum Msg { PendingPaintMetric(PipelineId, Epoch), /// The load of a page has completed LoadComplete(TopLevelBrowsingContextId), + /// WebDriver mouse button event + WebDriverMouseButtonEvent(MouseEventType, MouseButton, f32, f32), /// Get Window Informations size and position. GetClientWindow(IpcSender<(DeviceIntSize, DeviceIntPoint)>), @@ -132,6 +134,7 @@ impl Debug for Msg { Msg::Dispatch(..) => write!(f, "Dispatch"), Msg::PendingPaintMetric(..) => write!(f, "PendingPaintMetric"), Msg::LoadComplete(..) => write!(f, "LoadComplete"), + Msg::WebDriverMouseButtonEvent(..) => write!(f, "WebDriverMouseButtonEvent"), Msg::GetClientWindow(..) => write!(f, "GetClientWindow"), Msg::GetScreenSize(..) => write!(f, "GetScreenSize"), Msg::GetScreenAvailSize(..) => write!(f, "GetScreenAvailSize"), |