You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-15 13:51:40 +00:00
Fix mouse/drag/touch InputEvents having no device id
Some internally created emulated/instantiated events didn't have a device id. This PR sets for these cases a device id. Also rename `DEVICE_ID_TOUCH_MOUSE` to the more generic `DEVICE_ID_EMULATION`.
This commit is contained in:
@@ -533,6 +533,7 @@ void Input::_parse_input_event_impl(const Ref<InputEvent> &p_event, bool p_is_em
|
||||
touch_event->set_pressed(mb->is_pressed());
|
||||
touch_event->set_position(mb->get_position());
|
||||
touch_event->set_double_tap(mb->is_double_click());
|
||||
touch_event->set_device(InputEvent::DEVICE_ID_EMULATION);
|
||||
event_dispatch_function(touch_event);
|
||||
}
|
||||
}
|
||||
@@ -557,6 +558,7 @@ void Input::_parse_input_event_impl(const Ref<InputEvent> &p_event, bool p_is_em
|
||||
drag_event->set_pen_inverted(mm->get_pen_inverted());
|
||||
drag_event->set_pressure(mm->get_pressure());
|
||||
drag_event->set_velocity(get_last_mouse_velocity());
|
||||
drag_event->set_device(InputEvent::DEVICE_ID_EMULATION);
|
||||
|
||||
event_dispatch_function(drag_event);
|
||||
}
|
||||
@@ -592,7 +594,7 @@ void Input::_parse_input_event_impl(const Ref<InputEvent> &p_event, bool p_is_em
|
||||
Ref<InputEventMouseButton> button_event;
|
||||
button_event.instantiate();
|
||||
|
||||
button_event->set_device(InputEvent::DEVICE_ID_TOUCH_MOUSE);
|
||||
button_event->set_device(InputEvent::DEVICE_ID_EMULATION);
|
||||
button_event->set_position(st->get_position());
|
||||
button_event->set_global_position(st->get_position());
|
||||
button_event->set_pressed(st->is_pressed());
|
||||
@@ -623,7 +625,7 @@ void Input::_parse_input_event_impl(const Ref<InputEvent> &p_event, bool p_is_em
|
||||
Ref<InputEventMouseMotion> motion_event;
|
||||
motion_event.instantiate();
|
||||
|
||||
motion_event->set_device(InputEvent::DEVICE_ID_TOUCH_MOUSE);
|
||||
motion_event->set_device(InputEvent::DEVICE_ID_EMULATION);
|
||||
motion_event->set_tilt(sd->get_tilt());
|
||||
motion_event->set_pen_inverted(sd->get_pen_inverted());
|
||||
motion_event->set_pressure(sd->get_pressure());
|
||||
@@ -832,7 +834,7 @@ void Input::ensure_touch_mouse_raised() {
|
||||
Ref<InputEventMouseButton> button_event;
|
||||
button_event.instantiate();
|
||||
|
||||
button_event->set_device(InputEvent::DEVICE_ID_TOUCH_MOUSE);
|
||||
button_event->set_device(InputEvent::DEVICE_ID_EMULATION);
|
||||
button_event->set_position(mouse_pos);
|
||||
button_event->set_global_position(mouse_pos);
|
||||
button_event->set_pressed(false);
|
||||
@@ -869,6 +871,7 @@ void Input::set_default_cursor_shape(CursorShape p_shape) {
|
||||
mm.instantiate();
|
||||
mm->set_position(mouse_pos);
|
||||
mm->set_global_position(mouse_pos);
|
||||
mm->set_device(InputEvent::DEVICE_ID_INTERNAL);
|
||||
parse_input_event(mm);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user