diff options
author | Peter <ptrgonda@gmail.com> | 2015-04-16 10:41:02 -0400 |
---|---|---|
committer | Peter <ptrgonda@gmail.com> | 2015-04-29 21:32:18 -0400 |
commit | c069d1753eb5c22cefa80bba648b74dbda291502 (patch) | |
tree | 86ab15922907d0c28ab09077866437505ab2e497 /components/script/script_task.rs | |
parent | b0a7d1bf865eff7b6ca3bae874004a61c19b3c27 (diff) | |
download | servo-c069d1753eb5c22cefa80bba648b74dbda291502.tar.gz servo-c069d1753eb5c22cefa80bba648b74dbda291502.zip |
added dispatching for mousedown and mouseup events, fixes #5705
Diffstat (limited to 'components/script/script_task.rs')
-rw-r--r-- | components/script/script_task.rs | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/components/script/script_task.rs b/components/script/script_task.rs index f1f469212aa..a9afc1ad468 100644 --- a/components/script/script_task.rs +++ b/components/script/script_task.rs @@ -30,7 +30,7 @@ use dom::bindings::refcounted::{LiveDOMReferences, Trusted, TrustedReference}; use dom::bindings::structuredclone::StructuredCloneData; use dom::bindings::trace::{JSTraceable, trace_collections, RootedVec}; use dom::bindings::utils::{wrap_for_same_compartment, pre_wrap}; -use dom::document::{Document, IsHTMLDocument, DocumentHelpers, DocumentProgressHandler, DocumentProgressTask, DocumentSource}; +use dom::document::{Document, IsHTMLDocument, DocumentHelpers, DocumentProgressHandler, DocumentProgressTask, DocumentSource, MouseEventType}; use dom::element::{Element, AttributeHandlers}; use dom::event::{Event, EventHelpers, EventBubbles, EventCancelable}; use dom::htmliframeelement::{HTMLIFrameElement, HTMLIFrameElementHelpers}; @@ -50,7 +50,7 @@ use webdriver_handlers; use devtools_traits::{DevtoolsControlChan, DevtoolsControlPort, DevtoolsPageInfo}; use devtools_traits::{DevtoolsControlMsg, DevtoolScriptControlMsg}; use devtools_traits::{TimelineMarker, TimelineMarkerType, TracingMetadata}; -use script_traits::CompositorEvent; +use script_traits::{CompositorEvent, MouseButton}; use script_traits::CompositorEvent::{ResizeEvent, ClickEvent}; use script_traits::CompositorEvent::{MouseDownEvent, MouseUpEvent}; use script_traits::CompositorEvent::{MouseMoveEvent, KeyEvent}; @@ -1229,17 +1229,17 @@ impl ScriptTask { } ClickEvent(button, point) => { - let _marker; - if self.need_emit_timeline_marker(TimelineMarkerType::DOMEvent) { - _marker = AutoDOMEventMarker::new(self); - } - let page = get_page(&self.root_page(), pipeline_id); - let document = page.document().root(); - document.r().handle_click_event(self.js_runtime.rt(), button, point); + self.handle_mouse_event(pipeline_id, MouseEventType::Click, button, point); + } + + MouseDownEvent(button, point) => { + self.handle_mouse_event(pipeline_id, MouseEventType::MouseDown, button, point); + } + + MouseUpEvent(button, point) => { + self.handle_mouse_event(pipeline_id, MouseEventType::MouseUp, button, point); } - MouseDownEvent(..) => {} - MouseUpEvent(..) => {} MouseMoveEvent(point) => { let _marker; if self.need_emit_timeline_marker(TimelineMarkerType::DOMEvent) { @@ -1267,6 +1267,16 @@ impl ScriptTask { } } + fn handle_mouse_event(&self, pipeline_id: PipelineId, mouse_event_type: MouseEventType, button: MouseButton, point: Point2D<f32>) { + let _marker; + if self.need_emit_timeline_marker(TimelineMarkerType::DOMEvent) { + _marker = AutoDOMEventMarker::new(self); + } + let page = get_page(&self.root_page(), pipeline_id); + let document = page.document().root(); + document.r().handle_mouse_event(self.js_runtime.rt(), button, point, mouse_event_type); + } + /// https://html.spec.whatwg.org/multipage/#navigating-across-documents /// The entry point for content to notify that a new load has been requested /// for the given pipeline (specifically the "navigate" algorithm). |