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;
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
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;
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
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");
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);
}