diff --git a/src/api-impl-jni/widgets/WrapperWidget.c b/src/api-impl-jni/widgets/WrapperWidget.c index 0fa1ab21..82858880 100644 --- a/src/api-impl-jni/widgets/WrapperWidget.c +++ b/src/api-impl-jni/widgets/WrapperWidget.c @@ -375,6 +375,15 @@ void wrapper_widget_set_jobject(WrapperWidget *wrapper, JNIEnv *env, jobject job (*env)->DeleteLocalRef(env, canvas_class); } + jmethodID performClick_method = _METHOD(_CLASS(jobj), "performClick", "()Z"); + if (performClick_method != handle_cache.view.performClick) { + GtkEventController *controller = GTK_EVENT_CONTROLLER(gtk_gesture_click_new()); + + g_signal_connect(controller, "released", G_CALLBACK(on_click), wrapper->jobj); + gtk_widget_add_controller(GTK_WIDGET(wrapper), controller); + widget_set_needs_allocation(wrapper->child); + } + jmethodID ontouchevent_method = _METHOD(_CLASS(jobj), "onTouchEvent", "(Landroid/view/MotionEvent;)Z"); jmethodID dispatchtouchevent_method = _METHOD(_CLASS(jobj), "dispatchTouchEvent", "(Landroid/view/MotionEvent;)Z"); wrapper->custom_dispatch_touch = dispatchtouchevent_method != handle_cache.view.dispatchTouchEvent; @@ -387,15 +396,6 @@ void wrapper_widget_set_jobject(WrapperWidget *wrapper, JNIEnv *env, jobject job wrapper->computeScroll_method = computeScroll_method; } - jmethodID performClick_method = _METHOD(_CLASS(jobj), "performClick", "()Z"); - if (performClick_method != handle_cache.view.performClick) { - GtkEventController *controller = GTK_EVENT_CONTROLLER(gtk_gesture_click_new()); - - g_signal_connect(controller, "released", G_CALLBACK(on_click), wrapper->jobj); - gtk_widget_add_controller(wrapper->child, controller); - widget_set_needs_allocation(wrapper->child); - } - jmethodID dispatch_key_event_method = _METHOD(_CLASS(jobj), "dispatchKeyEvent", "(Landroid/view/KeyEvent;)Z"); jmethodID on_key_down_method = _METHOD(_CLASS(jobj), "onKeyDown", "(ILandroid/view/KeyEvent;)Z"); if (dispatch_key_event_method != handle_cache.view.dispatchKeyEvent || on_key_down_method != handle_cache.view.onKeyDown) {