summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2019-11-11 08:29:12 +0100
committerRémi Verschelde <rverschelde@gmail.com>2019-11-11 08:29:58 +0100
commit6cd3c921f11349858f936872310bad40cb4cc577 (patch)
tree8bd1d3cba209c81c89db49ee9c8c355af60bec91
parent5f4ab5c77ded1c078c8e3543727d576d837942e0 (diff)
Revert "Android : implement InputEventMagnifyGesture and InputEventPanGesture"
This reverts commit 9cc66495cfb6393102ce5ad4e82f2ccb716b9b33. This caused regressions with the handling of screen drag events. Fixes #33428. Fixes #33459. Fixes #33470.
-rw-r--r--platform/android/os_android.cpp34
1 files changed, 1 insertions, 33 deletions
diff --git a/platform/android/os_android.cpp b/platform/android/os_android.cpp
index 9156181bbe..defee8f1f1 100644
--- a/platform/android/os_android.cpp
+++ b/platform/android/os_android.cpp
@@ -49,9 +49,6 @@
#include "java_godot_io_wrapper.h"
#include "java_godot_wrapper.h"
-#define PAN_GESTURE_MIN_DELTA 5 // only advertise PanGesture event with dx and dy greater than this
-#define MAGNIFY_GESTURE_MIN_FACTOR 0.1 // only advertise MagnifyGesture event with a factor difference from 1.0 greater than this
-
class AndroidLogger : public Logger {
public:
virtual void logv(const char *p_format, va_list p_list, bool p_err) {
@@ -409,35 +406,6 @@ void OS_Android::process_touch(int p_what, int p_pointer, const Vector<TouchPos>
ERR_FAIL_COND(touch.size() != p_points.size());
- if (touch.size() == 1) {
- Point2 d = (p_points[0].pos - touch.write[0].pos);
- if (fabs(d.x) > PAN_GESTURE_MIN_DELTA || fabs(d.y) > PAN_GESTURE_MIN_DELTA) {
- Ref<InputEventPanGesture> ev;
- ev.instance();
- ev->set_position(p_points[0].pos);
- ev->set_delta(d);
- input->parse_input_event(ev);
- touch.write[0].pos = p_points[0].pos;
- }
- } else if (touch.size() == 2) {
- Point2 v0 = touch[1].pos - touch[0].pos;
- float l0 = (v0.x * v0.x) + (v0.y * v0.y);
- if (l0 != 0.0) {
- Point2 v1 = p_points[1].pos - p_points[0].pos;
- float l1 = (v1.x * v1.x) + (v1.y * v1.y);
- float f = (l1 / l0);
- if (fabs(f - 1.0) > MAGNIFY_GESTURE_MIN_FACTOR) {
- Ref<InputEventMagnifyGesture> ev;
- ev.instance();
- ev->set_position(p_points[0].pos + v1 / 2);
- ev->set_factor(sqrt(f));
- input->parse_input_event(ev);
- touch.write[0].pos = p_points[0].pos;
- touch.write[1].pos = p_points[1].pos;
- }
- }
- }
-
for (int i = 0; i < touch.size(); i++) {
int idx = -1;
@@ -452,7 +420,7 @@ void OS_Android::process_touch(int p_what, int p_pointer, const Vector<TouchPos>
ERR_CONTINUE(idx == -1);
if (touch[i].pos == p_points[idx].pos)
- continue; //no unnecessary move
+ continue; //no move unncesearily
Ref<InputEventScreenDrag> ev;
ev.instance();