diff options
Diffstat (limited to 'components/compositing')
-rw-r--r-- | components/compositing/compositor.rs | 4 | ||||
-rw-r--r-- | components/compositing/compositor_layer.rs | 10 | ||||
-rw-r--r-- | components/compositing/constellation.rs | 13 | ||||
-rw-r--r-- | components/compositing/windowing.rs | 5 |
4 files changed, 22 insertions, 10 deletions
diff --git a/components/compositing/compositor.rs b/components/compositing/compositor.rs index e61dff31d47..3e259a7b35a 100644 --- a/components/compositing/compositor.rs +++ b/components/compositing/compositor.rs @@ -30,13 +30,13 @@ use msg::compositor_msg::{Epoch, EventResult, FrameTreeId, LayerId, LayerKind}; use msg::compositor_msg::{LayerProperties, ScrollPolicy}; use msg::constellation_msg::CompositorMsg as ConstellationMsg; use msg::constellation_msg::{AnimationState, Image, PixelFormat}; -use msg::constellation_msg::{Key, KeyModifiers, KeyState, LoadData}; +use msg::constellation_msg::{Key, KeyModifiers, KeyState, LoadData, MouseButton}; use msg::constellation_msg::{NavigationDirection, PipelineId, WindowSizeData}; use pipeline::CompositionPipeline; use profile_traits::mem::{self, ReportKind, Reporter, ReporterRequest}; use profile_traits::time::{self, ProfilerCategory, profile}; use script_traits::CompositorEvent::{MouseMoveEvent, TouchEvent}; -use script_traits::{ConstellationControlMsg, LayoutControlMsg, MouseButton}; +use script_traits::{ConstellationControlMsg, LayoutControlMsg}; use script_traits::{TouchEventType, TouchId}; use scrolling::ScrollingTimerProxy; use std::collections::hash_map::Entry::{Occupied, Vacant}; diff --git a/components/compositing/compositor_layer.rs b/components/compositing/compositor_layer.rs index ceb034c83bd..27308adddbc 100644 --- a/components/compositing/compositor_layer.rs +++ b/components/compositing/compositor_layer.rs @@ -12,9 +12,9 @@ use layers::color::Color; use layers::geometry::LayerPixel; use layers::layers::{Layer, LayerBufferSet}; use msg::compositor_msg::{Epoch, LayerId, LayerProperties, ScrollPolicy}; -use msg::constellation_msg::PipelineId; +use msg::constellation_msg::{MouseEventType, PipelineId}; use script_traits::CompositorEvent; -use script_traits::CompositorEvent::{ClickEvent, MouseDownEvent, MouseMoveEvent, MouseUpEvent}; +use script_traits::CompositorEvent::{MouseButtonEvent, MouseMoveEvent}; use script_traits::ConstellationControlMsg; use std::rc::Rc; use windowing::{MouseWindowEvent, WindowMethods}; @@ -372,11 +372,11 @@ impl CompositorLayer for Layer<CompositorData> { let event_point = cursor.to_untyped(); let message = match event { MouseWindowEvent::Click(button, _) => - ClickEvent(button, event_point), + MouseButtonEvent(MouseEventType::Click, button, event_point), MouseWindowEvent::MouseDown(button, _) => - MouseDownEvent(button, event_point), + MouseButtonEvent(MouseEventType::MouseDown, button, event_point), MouseWindowEvent::MouseUp(button, _) => - MouseUpEvent(button, event_point), + MouseButtonEvent(MouseEventType::MouseUp, button, event_point), }; self.send_event(compositor, message); } diff --git a/components/compositing/constellation.rs b/components/compositing/constellation.rs index 22a22d459e7..34d20d42c0d 100644 --- a/components/compositing/constellation.rs +++ b/components/compositing/constellation.rs @@ -613,6 +613,19 @@ impl<LTF: LayoutTaskFactory, STF: ScriptTaskFactory> Constellation<LTF, STF> { debug!("constellation got focus message"); self.handle_focus_msg(pipeline_id); } + Request::Script(FromScriptMsg::ForwardMouseButtonEvent( + pipeline_id, event_type, button, point)) => { + if let Some(pipeline) = self.pipelines.get(&pipeline_id) { + pipeline.script_chan.send(ConstellationControlMsg::SendEvent(pipeline_id, + CompositorEvent::MouseButtonEvent(event_type, button, point))); + } + } + Request::Script(FromScriptMsg::ForwardMouseMoveEvent(pipeline_id, point)) => { + if let Some(pipeline) = self.pipelines.get(&pipeline_id) { + pipeline.script_chan.send(ConstellationControlMsg::SendEvent(pipeline_id, + CompositorEvent::MouseMoveEvent(Some(point)))); + } + } Request::Script(FromScriptMsg::GetClipboardContents(sender)) => { let result = self.clipboard_ctx.as_ref().map_or( "".to_owned(), diff --git a/components/compositing/windowing.rs b/components/compositing/windowing.rs index d129a6deb5b..2a9dcb9bcb0 100644 --- a/components/compositing/windowing.rs +++ b/components/compositing/windowing.rs @@ -11,9 +11,9 @@ use euclid::size::TypedSize2D; use euclid::{Point2D, Size2D}; use layers::geometry::DevicePixel; use layers::platform::surface::NativeDisplay; -use msg::constellation_msg::{Key, KeyModifiers, KeyState}; +use msg::constellation_msg::{Key, KeyModifiers, KeyState, MouseButton}; use net_traits::net_error_list::NetError; -use script_traits::{MouseButton, TouchEventType, TouchId}; +use script_traits::{TouchEventType, TouchId}; use std::fmt::{Debug, Error, Formatter}; use std::rc::Rc; use url::Url; @@ -27,7 +27,6 @@ pub enum MouseWindowEvent { MouseUp(MouseButton, TypedPoint2D<DevicePixel, f32>), } - #[derive(Clone)] pub enum WindowNavigateMsg { Forward, |