summaryrefslogtreecommitdiff
path: root/core/input
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <remi@verschelde.fr>2022-01-24 10:05:42 +0100
committerGitHub <noreply@github.com>2022-01-24 10:05:42 +0100
commit57a057f7ff031f4593d851e351bc63fda77be535 (patch)
treeac7ea395e5872c16d8cddfa739b3cc81bae66c38 /core/input
parentb56d5b6e2fdfaf0a40c60b014f534820ba06c016 (diff)
parent5250cdd150dbffc1387d8cc60bee7977b322117a (diff)
Merge pull request #56754 from madmiraal/fix-45592
Diffstat (limited to 'core/input')
-rw-r--r--core/input/input.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/core/input/input.cpp b/core/input/input.cpp
index 3ddb151f23..7106bd0745 100644
--- a/core/input/input.cpp
+++ b/core/input/input.cpp
@@ -518,18 +518,20 @@ void Input::_parse_input_event_impl(const Ref<InputEvent> &p_event, bool p_is_em
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_velocity_track.update(relative);
if (event_dispatch_function && emulate_touch_from_mouse && !p_is_emulated && (mm->get_button_mask() & MouseButton::LEFT) != MouseButton::NONE) {
Ref<InputEventScreenDrag> drag_event;
drag_event.instantiate();
- drag_event->set_position(mm->get_position());
- drag_event->set_relative(mm->get_relative());
- drag_event->set_velocity(mm->get_velocity());
+ drag_event->set_position(position);
+ drag_event->set_relative(relative);
+ drag_event->set_velocity(get_last_mouse_velocity());
event_dispatch_function(drag_event);
}
@@ -710,7 +712,6 @@ void Input::set_gyroscope(const Vector3 &p_gyroscope) {
}
void Input::set_mouse_position(const Point2 &p_posf) {
- mouse_velocity_track.update(p_posf - mouse_pos);
mouse_pos = p_posf;
}