e_input_event: reduce duplicated code to unref input device 02/325202/1
authorJihoon Kim <jihoon48.kim@samsung.com>
Wed, 4 Jun 2025 00:54:58 +0000 (09:54 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Wed, 4 Jun 2025 07:06:55 +0000 (16:06 +0900)
Change-Id: I48b6a726b7178179bf4a42fae17959c48a977903
Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
src/bin/inputmgr/e_devicemgr_inputgen.c
src/bin/inputmgr/e_input_evdev.c
src/bin/inputmgr/e_input_event.c
src/bin/inputmgr/e_input_event_intern.h
src/include/e_input_event.h

index 7d0203f878ba803ae8a1fa74fab46246d760b246..a23469619c8cdbc0e713f2efc455625ae03f0b3e 100644 (file)
@@ -162,14 +162,7 @@ _e_devicemgr_inputgen_key_event_free(void *data EINA_UNUSED, void *ev)
    eina_stringshare_del(e->key);
    eina_stringshare_del(e->compose);
 
-   if (e_input_thread_mode_get())
-     {
-        if (e->dev) g_object_unref(e->dev);
-     }
-   else
-     {
-        if (e->dev) ecore_device_unref(e->dev);
-     }
+   e_input_event_device_unref(e->dev, EINA_FALSE);
 
    if (e->data) E_FREE(e->data);
 
index a9455166a2edebd986cf94e0aa9194adf2dbbbfa..f426f068a4526d415701aebaaf1d3b87d3010448 100644 (file)
@@ -498,15 +498,7 @@ static void
 _e_input_event_mouse_move_cb_free(void *data EINA_UNUSED, void *event)
 {
    Ecore_Event_Mouse_Move *ev = event;
-
-   if (ev->dev)
-     {
-        if (e_input_thread_mode_get() && e_input_pointer_thread_mode_get())
-          g_object_unref(ev->dev);
-        else
-          ecore_device_unref(ev->dev);
-     }
-
+   e_input_event_device_unref(ev->dev, EINA_TRUE);
    free(ev);
 }
 
@@ -524,15 +516,7 @@ static void
 _e_input_event_mouse_wheel_cb_free(void *data EINA_UNUSED, void *event)
 {
    Ecore_Event_Mouse_Wheel *ev = event;
-
-   if (ev->dev)
-     {
-        if (e_input_thread_mode_get() && e_input_pointer_thread_mode_get())
-          g_object_unref(ev->dev);
-        else
-          ecore_device_unref(ev->dev);
-     }
-
+   e_input_event_device_unref(ev->dev, EINA_TRUE);
    free(ev);
 }
 
@@ -540,15 +524,7 @@ static void
 _e_input_event_mouse_button_cb_free(void *data EINA_UNUSED, void *event)
 {
    Ecore_Event_Mouse_Button *ev = event;
-
-   if (ev->dev)
-     {
-        if (e_input_thread_mode_get() && e_input_pointer_thread_mode_get())
-          g_object_unref(ev->dev);
-        else
-          ecore_device_unref(ev->dev);
-     }
-
+   e_input_event_device_unref(ev->dev, EINA_TRUE);
    free(ev);
 }
 
@@ -556,16 +532,7 @@ static void
 _e_input_event_key_cb_free(void *data EINA_UNUSED, void *event)
 {
    Ecore_Event_Key *ev = event;
-
-   if (e_input_thread_mode_get())
-     {
-        if (ev->dev) g_object_unref(ev->dev);
-     }
-   else
-     {
-        if (ev->dev) ecore_device_unref(ev->dev);
-     }
-
+   e_input_event_device_unref(ev->dev, EINA_FALSE);
    if (ev->data) E_FREE(ev->data);
 
    free(ev);
index db30db6e5771147868b443edb2a00717d9299c7b..7ad1d912955c2720e1afdf0b630f7cb7b455e999 100644 (file)
@@ -426,3 +426,28 @@ e_input_event_add(E_Input_Event_Source *source, int event_type, void *ev_data, e
 
    _e_input_event_send(source, ev);
 }
+
+EINTERN void
+e_input_event_device_unref(Eo *dev, Eina_Bool pointer_event)
+{
+   if (!dev) return;
+
+   if (e_input_thread_mode_get())
+     {
+        if (pointer_event)
+          {
+             if (e_input_pointer_thread_mode_get())
+               {
+                  g_object_unref(dev);
+                  return;
+               }
+          }
+        else
+          {
+             g_object_unref(dev);
+             return;
+          }
+     }
+
+   ecore_device_unref(dev);
+}
index ce59e3699af7dae1344fb77ca5700e4e01e40095..9b06c66dc8543dbcf4aa0bc964edb734a36c8cb1 100644 (file)
@@ -14,6 +14,8 @@ typedef struct
 EINTERN E_Input_Event_Source *e_input_event_source_create();
 EINTERN void                  e_input_event_source_destroy(E_Input_Event_Source *source);
 
+EINTERN void                  e_input_event_device_unref(Eo *dev, Eina_Bool pointer_event);
+
 EINTERN void e_input_event_process(GSource *source);
 
 #endif
index 0e6fd18928d0b1117aaf40b37c79fd70a557c7ac..0acf34b8d4c64ded3c0658ab44ddb4d68baceed3 100644 (file)
@@ -23,8 +23,6 @@ E_API void                   e_input_event_add(E_Input_Event_Source *source, int
 E_API E_Input_Event_Filter *e_input_event_filter_add(E_Input_Event_Source *source, int event, ev_handler_func func, void *user_data);
 E_API void                  e_input_event_filter_del(E_Input_Event_Source *source, E_Input_Event_Filter *event_filter);
 
-
-
 #ifdef  __cplusplus
 }
 #endif