mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +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) {
|
||||
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
|
||||
// constellation to filter down.
|
||||
let Some(point) = event.point() else {
|
||||
|
@ -390,7 +392,15 @@ impl WebViewRenderer {
|
|||
return;
|
||||
};
|
||||
|
||||
self.global.borrow_mut().update_cursor(point, &result);
|
||||
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);
|
||||
},
|
||||
_ => unreachable!("Unexpected input event type: {event:?}"),
|
||||
}
|
||||
|
||||
if let Err(error) = self.global.borrow().constellation_sender.send(
|
||||
EmbedderToConstellationMessage::ForwardInputEvent(self.id, event, Some(result)),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue