You've already forked android_translation_layer
mirror of
https://gitlab.com/android_translation_layer/android_translation_layer.git
synced 2025-10-27 11:48:10 -07:00
WrapperWidget: make sure onTouch listeners are called before onClick listeners
This commit is contained in:
@@ -375,6 +375,15 @@ void wrapper_widget_set_jobject(WrapperWidget *wrapper, JNIEnv *env, jobject job
|
|||||||
(*env)->DeleteLocalRef(env, canvas_class);
|
(*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 ontouchevent_method = _METHOD(_CLASS(jobj), "onTouchEvent", "(Landroid/view/MotionEvent;)Z");
|
||||||
jmethodID dispatchtouchevent_method = _METHOD(_CLASS(jobj), "dispatchTouchEvent", "(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;
|
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;
|
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 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");
|
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) {
|
if (dispatch_key_event_method != handle_cache.view.dispatchKeyEvent || on_key_down_method != handle_cache.view.onKeyDown) {
|
||||||
|
|||||||
Reference in New Issue
Block a user