e_input: add input thread start hook 62/301062/1
authorJihoon Kim <jihoon48.kim@samsung.com>
Mon, 6 Nov 2023 08:39:23 +0000 (17:39 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Wed, 8 Nov 2023 01:59:01 +0000 (10:59 +0900)
Change-Id: Id5fb47aa785579b5fa188af560a26348976c4c88
Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
src/bin/e_input.c
src/bin/e_input.h
src/bin/e_input_inputs.c

index 524f6cd..1a7aad9 100644 (file)
@@ -5,9 +5,12 @@
 static int _e_input_hooks_delete = 0;
 static int _e_input_hooks_walking = 0;
 
+static pid_t _e_input_thread_id = 0;
+
 static Eina_Inlist *_e_input_hooks[] =
 {
    [E_INPUT_HOOK_POINTER_WARP] = NULL,
+   [E_INPUT_HOOK_INPUT_THREAD_START] = NULL,
 };
 
 int _e_input_init_count;
@@ -386,4 +389,14 @@ void
 e_input_flush_keyboard_share_events(void)
 {
    ecore_main_loop_thread_safe_call_async(_keyboard_share_key_event_flush_cb, NULL);
+}
+
+E_API pid_t e_input_thread_id_get()
+{
+   return _e_input_thread_id;
+}
+
+EINTERN void e_input_thread_id_set(pid_t tid)
+{
+   _e_input_thread_id = tid;
 }
\ No newline at end of file
index 27efb3a..08b5282 100644 (file)
@@ -22,6 +22,7 @@ EINTERN extern int E_EVENT_INPUT_DISABLED;
 typedef enum _E_Input_Hook_Point
 {
    E_INPUT_HOOK_POINTER_WARP,
+   E_INPUT_HOOK_INPUT_THREAD_START,
    E_INPUT_HOOK_LAST
 } E_Input_Hook_Point;
 
@@ -170,5 +171,8 @@ E_API Eina_Bool e_input_device_mouse_accel_enable_set(const char *device_name, E
 
 EINTERN void e_input_flush_keyboard_share_events(void);
 
+E_API pid_t e_input_thread_id_get();
+EINTERN void e_input_thread_id_set(pid_t tid);
+
 #endif
 #endif
index ffa7646..c67b439 100644 (file)
@@ -663,8 +663,6 @@ input_thread_start(void *data, Ecore_Thread *th)
    GMainContext *context = NULL;
    InputEventSource *input_event_source = NULL;
 
-   INF("input thread start");
-
    if (!(input = data)) return;
 
    eina_thread_name_set(eina_thread_self(), "input-thread");
@@ -693,6 +691,12 @@ input_thread_start(void *data, Ecore_Thread *th)
 
    e_keyrouter_input_handler_add();
 
+   e_input_thread_id_set(gettid());
+
+   _e_input_hook_call(E_INPUT_HOOK_INPUT_THREAD_START, NULL);
+
+   INF("input thread start (%d)", e_input_thread_id_get());
+
    g_main_loop_run(input->input_thread_loop);
 }