aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/script_task.rs
diff options
context:
space:
mode:
authorPeter <ptrgonda@gmail.com>2015-04-16 10:41:02 -0400
committerPeter <ptrgonda@gmail.com>2015-04-29 21:32:18 -0400
commitc069d1753eb5c22cefa80bba648b74dbda291502 (patch)
tree86ab15922907d0c28ab09077866437505ab2e497 /components/script/script_task.rs
parentb0a7d1bf865eff7b6ca3bae874004a61c19b3c27 (diff)
downloadservo-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.rs32
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).