diff options
author | Jay Wang <xdddxyyyxzzz123@gmail.com> | 2024-12-10 00:24:54 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-09 15:24:54 +0000 |
commit | dd2fc75b71d5b47c05b45f3cc4028e586cfc97f0 (patch) | |
tree | 34eafea777ac0fe18ffb2b91876175683771d1d5 /components/script/dom/mouseevent.rs | |
parent | 4103421ba5dc401817128661d759bb18b0aec8f1 (diff) | |
download | servo-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.rs | 47 |
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>> { |