mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
Handle Touch events in dispatch_pending_point_input_events (#37285)
Add a missing step in hit test retry [(comment)](https://github.com/servo/servo/pull/37085/files/0d02b61f72c24e575273b6240e04351762ef000a#r2131567216). cc: @xiaochengh , @kongbai1996 --------- Signed-off-by: batu_hoang <longvatrong111@gmail.com>
This commit is contained in:
parent
8a14dd318a
commit
73c2864233
1 changed files with 12 additions and 2 deletions
|
@ -370,8 +370,10 @@ impl WebViewRenderer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: This function duplicates a lot of `dispatch_point_input_event.
|
||||||
|
// Perhaps it should just be called here instead.
|
||||||
pub(crate) fn dispatch_pending_point_input_events(&self) {
|
pub(crate) fn dispatch_pending_point_input_events(&self) {
|
||||||
while let Some(event) = self.pending_point_input_events.borrow_mut().pop_front() {
|
while let Some(mut event) = self.pending_point_input_events.borrow_mut().pop_front() {
|
||||||
// Events that do not need to do hit testing are sent directly to the
|
// Events that do not need to do hit testing are sent directly to the
|
||||||
// constellation to filter down.
|
// constellation to filter down.
|
||||||
let Some(point) = event.point() else {
|
let Some(point) = event.point() else {
|
||||||
|
@ -390,7 +392,15 @@ impl WebViewRenderer {
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
match event {
|
||||||
|
InputEvent::Touch(ref mut touch_event) => {
|
||||||
|
touch_event.init_sequence_id(self.touch_handler.current_sequence_id);
|
||||||
|
},
|
||||||
|
InputEvent::MouseButton(_) | InputEvent::MouseMove(_) | InputEvent::Wheel(_) => {
|
||||||
self.global.borrow_mut().update_cursor(point, &result);
|
self.global.borrow_mut().update_cursor(point, &result);
|
||||||
|
},
|
||||||
|
_ => unreachable!("Unexpected input event type: {event:?}"),
|
||||||
|
}
|
||||||
|
|
||||||
if let Err(error) = self.global.borrow().constellation_sender.send(
|
if let Err(error) = self.global.borrow().constellation_sender.send(
|
||||||
EmbedderToConstellationMessage::ForwardInputEvent(self.id, event, Some(result)),
|
EmbedderToConstellationMessage::ForwardInputEvent(self.id, event, Some(result)),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue