Merge pull request #56755 from madmiraal/fix-45592-3.x

This commit is contained in:
Rémi Verschelde
2022-01-24 10:06:24 +01:00
committed by GitHub
5 changed files with 8 additions and 14 deletions

View File

@ -355,18 +355,20 @@ void InputDefault::_parse_input_event_impl(const Ref<InputEvent> &p_event, bool
Ref<InputEventMouseMotion> mm = p_event;
if (mm.is_valid()) {
Point2 pos = mm->get_global_position();
if (mouse_pos != pos) {
set_mouse_position(pos);
Point2 position = mm->get_global_position();
if (mouse_pos != position) {
set_mouse_position(position);
}
Vector2 relative = mm->get_relative();
mouse_speed_track.update(relative);
if (main_loop && emulate_touch_from_mouse && !p_is_emulated && mm->get_button_mask() & 1) {
Ref<InputEventScreenDrag> drag_event;
drag_event.instance();
drag_event->set_position(mm->get_position());
drag_event->set_relative(mm->get_relative());
drag_event->set_speed(mm->get_speed());
drag_event->set_position(position);
drag_event->set_relative(relative);
drag_event->set_speed(get_last_mouse_speed());
main_loop->input_event(drag_event);
}
@ -552,7 +554,6 @@ void InputDefault::set_main_loop(MainLoop *p_main_loop) {
}
void InputDefault::set_mouse_position(const Point2 &p_posf) {
mouse_speed_track.update(p_posf - mouse_pos);
mouse_pos = p_posf;
}