while ((ev = (E_Input_Event *)g_queue_pop_head(ev_source->ev_queue)))
{
- if (_process_filter_event(ev_source, ev)) {
- _process_event_handler(ev_source, ev);
- }
+ if (_process_filter_event(ev_source, ev))
+ _process_event_handler(ev_source, ev);
if (ev->free_func)
ev->free_func(ev->free_func_data, ev->ev_data);
e_input_event_source_create()
{
E_Input_Event_Source *source = (E_Input_Event_Source *)g_source_new(&_event_source_funcs, sizeof(E_Input_Event_Source));
-
source->ev_queue = g_queue_new();
return source;
{
if (ev->free_func)
ev->free_func(ev->free_func_data, ev->ev_data);
+
free(ev);
}
static void
_e_input_event_send(E_Input_Event_Source *source, E_Input_Event *ev)
{
- if (source)
- g_queue_push_tail(source->ev_queue, ev);
+ if (!source) return;
+
+ g_queue_push_tail(source->ev_queue, ev);
}
E_API void
ev->free_func_data = free_func_data;
_e_input_event_send(source, ev);
+
+ e_input_event_process(source);
}