e_input_event: reduce duplicated code for creating input event handler 51/325051/1
authorJihoon Kim <jihoon48.kim@samsung.com>
Mon, 2 Jun 2025 02:03:01 +0000 (11:03 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Mon, 2 Jun 2025 06:27:25 +0000 (15:27 +0900)
Change-Id: I1bbcdad690eae4c9bf0def0f27eec322b39a231c
Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
src/bin/inputmgr/e_input_event.c

index ab2f451b5252c02bb2db139a181f7f0d4fd7d06c..db30db6e5771147868b443edb2a00717d9299c7b 100644 (file)
@@ -130,11 +130,9 @@ _e_input_thread_event_handler_add(void *data)
    source->ev_handler_list = g_list_append(source->ev_handler_list, ie_data->eh);
 }
 
-E_API E_Input_Event_Handler *
-e_input_event_handler_add(E_Input_Event_Source *source, int event, ev_handler_func func, void *user_data)
+static E_Input_Event_Handler *
+_e_input_event_handler_create(int event, ev_handler_func func, void *user_data, E_Input_Thread_Safe_Call_Cb input_thread_cb)
 {
-   if (!source) return NULL;
-
    E_Input_Event_Handler *eh = (E_Input_Event_Handler *)calloc(1, sizeof(E_Input_Event_Handler));
    if (!eh) return NULL;
 
@@ -150,11 +148,20 @@ e_input_event_handler_add(E_Input_Event_Source *source, int event, ev_handler_fu
         ie_data.eh = eh;
 
         INF("[%s] eh(%p)\n", __func__, eh);
-        e_input_backend_thread_safe_call(_e_input_thread_event_handler_add, &ie_data, sizeof(E_Input_Thread_Request_Input_Event_Data));
-
-        return eh;
+        e_input_backend_thread_safe_call(input_thread_cb, &ie_data, sizeof(E_Input_Thread_Request_Input_Event_Data));
      }
 
+   return eh;
+}
+
+E_API E_Input_Event_Handler *
+e_input_event_handler_add(E_Input_Event_Source *source, int event, ev_handler_func func, void *user_data)
+{
+   if (!source) return NULL;
+
+   E_Input_Event_Handler *eh = _e_input_event_handler_create(event, func, user_data, _e_input_thread_event_handler_add);
+   if (!eh) return NULL;
+
    source->ev_handler_list = g_list_append(source->ev_handler_list, eh);
 
    return eh;
@@ -178,26 +185,9 @@ e_input_event_handler_prepend(E_Input_Event_Source *source, int event, ev_handle
 {
    if (!source) return NULL;
 
-   E_Input_Event_Handler *eh = (E_Input_Event_Handler *)calloc(1, sizeof(E_Input_Event_Handler));
+   E_Input_Event_Handler *eh = _e_input_event_handler_create(event, func, user_data, _e_input_thread_event_handler_prepend);
    if (!eh) return NULL;
 
-   eh->event = event;
-   eh->func = func;
-   eh->user_data = user_data;
-
-   if (e_input_thread_id_get() != gettid())
-     {
-        E_Input_Thread_Request_Input_Event_Data ie_data;
-        memset(&ie_data, 0, sizeof(E_Input_Thread_Request_Input_Event_Data));
-
-        ie_data.eh = eh;
-
-        INF("[%s] eh(%p)\n", __func__, eh);
-        e_input_backend_thread_safe_call(_e_input_thread_event_handler_prepend, &ie_data, sizeof(E_Input_Thread_Request_Input_Event_Data));
-
-        return eh;
-     }
-
    source->ev_handler_list = g_list_prepend(source->ev_handler_list, eh);
 
    return eh;