aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/mouseevent.rs
diff options
context:
space:
mode:
authorJay Wang <xdddxyyyxzzz123@gmail.com>2024-12-10 00:24:54 +0900
committerGitHub <noreply@github.com>2024-12-09 15:24:54 +0000
commitdd2fc75b71d5b47c05b45f3cc4028e586cfc97f0 (patch)
tree34eafea777ac0fe18ffb2b91876175683771d1d5 /components/script/dom/mouseevent.rs
parent4103421ba5dc401817128661d759bb18b0aec8f1 (diff)
downloadservo-dd2fc75b71d5b47c05b45f3cc4028e586cfc97f0.tar.gz
servo-dd2fc75b71d5b47c05b45f3cc4028e586cfc97f0.zip
retire deprecated MouseEvent::InitMouseEvent (#34538)
Signed-off-by: Jay Wang <xdddxyyyxzzz123@gmail.com> Co-authored-by: Ngo Iok Ui (Wu Yu Wei) <yuweiwu@pm.me>
Diffstat (limited to 'components/script/dom/mouseevent.rs')
-rw-r--r--components/script/dom/mouseevent.rs47
1 files changed, 27 insertions, 20 deletions
diff --git a/components/script/dom/mouseevent.rs b/components/script/dom/mouseevent.rs
index 948c8394103..4a80652e757 100644
--- a/components/script/dom/mouseevent.rs
+++ b/components/script/dom/mouseevent.rs
@@ -201,30 +201,37 @@ impl MouseEvent {
related_target: Option<&EventTarget>,
point_in_target: Option<Point2D<f32>>,
) {
- // TODO: InitMouseEvent has been deprecated. We should follow the link to create an UI
- // Event instead.
- self.InitMouseEvent(
+ self.uievent.initialize_ui_event(
type_,
- bool::from(can_bubble),
- bool::from(cancelable),
- view,
- detail,
- screen_x,
- screen_y,
- client_x,
- client_y,
- ctrl_key,
- alt_key,
- shift_key,
- meta_key,
- button,
- related_target,
+ view.map(|window| window.upcast::<EventTarget>()),
+ can_bubble,
+ cancelable,
);
+
+ self.uievent.set_detail(detail);
+
+ self.screen_x.set(screen_x);
+ self.screen_y.set(screen_y);
+ self.client_x.set(client_x);
+ self.client_y.set(client_y);
+ self.page_x.set(self.PageX());
+ self.page_y.set(self.PageY());
+
+ // skip setting flags as they are absent
+ self.shift_key.set(shift_key);
+ self.ctrl_key.set(ctrl_key);
+ self.alt_key.set(alt_key);
+ self.meta_key.set(meta_key);
+
+ self.button.set(button);
self.buttons.set(buttons);
+ // skip step 3: Initialize PointerLock attributes for MouseEvent with event,
+ // as movementX, movementY is absent
+
+ self.related_target.set(related_target);
+
+ // below is not in the spec
self.point_in_target.set(point_in_target);
- // TODO: Set proper values in https://github.com/servo/servo/issues/24415
- self.page_x.set(client_x);
- self.page_y.set(client_y);
}
pub fn point_in_target(&self) -> Option<Point2D<f32>> {