From 66e5d77959627eda18a35207073ddcbce5341466 Mon Sep 17 00:00:00 2001 From: Julian Winkler Date: Wed, 27 Mar 2024 22:55:06 +0100 Subject: [PATCH] View: clear canceled_event pointer This is needed, as GdkEvent pointers are not guaranteed to be unique --- src/api-impl-jni/views/android_view_View.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/api-impl-jni/views/android_view_View.c b/src/api-impl-jni/views/android_view_View.c index 2fcf4c95..ddb5851b 100644 --- a/src/api-impl-jni/views/android_view_View.c +++ b/src/api-impl-jni/views/android_view_View.c @@ -70,9 +70,13 @@ static gboolean on_event(GtkEventControllerLegacy *event_controller, GdkEvent *e guint32 timestamp = gdk_event_get_time(event); // TODO: this doesn't work for multitouch - if (event == canceled_event && cancel_triggerer != d) { + if (cancel_triggerer == d) { // cancel done + canceled_event = NULL; + cancel_triggerer = NULL; + } else if (event == canceled_event) { gdk_event_get_widget_relative_position(event, widget, &x, &y); - return call_ontouch_callback(MOTION_EVENT_ACTION_CANCEL, x, y, d, phase, timestamp, event); + call_ontouch_callback(MOTION_EVENT_ACTION_CANCEL, x, y, d, phase, timestamp, event); + return false; } switch(gdk_event_get_event_type(event)) { case GDK_BUTTON_PRESS: