}
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)
+_e_input_event_handler_create(E_Input_Event_Source *source, int event, ev_handler_func func, void *user_data, E_Input_Thread_Safe_Call_Cb input_thread_cb, Eina_Bool append)
{
E_Input_Event_Handler *eh = (E_Input_Event_Handler *)calloc(1, sizeof(E_Input_Event_Handler));
if (!eh) return NULL;
INF("[%s] eh(%p)\n", __func__, eh);
e_input_backend_thread_safe_call(input_thread_cb, &ie_data, sizeof(E_Input_Thread_Request_Input_Event_Data));
+
+ return eh;
}
+ if (append)
+ source->ev_handler_list = g_list_append(source->ev_handler_list, eh);
+ else
+ source->ev_handler_list = g_list_prepend(source->ev_handler_list, eh);
+
return eh;
}
{
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;
+ return _e_input_event_handler_create(source, event, func, user_data, _e_input_thread_event_handler_add, EINA_TRUE);
}
static void
{
if (!source) return NULL;
- E_Input_Event_Handler *eh = _e_input_event_handler_create(event, func, user_data, _e_input_thread_event_handler_prepend);
- if (!eh) return NULL;
-
- source->ev_handler_list = g_list_prepend(source->ev_handler_list, eh);
-
- return eh;
+ return _e_input_event_handler_create(source, event, func, user_data, _e_input_thread_event_handler_prepend, EINA_FALSE);
}
static void