static void _device_output_assign(E_Input_Evdev *evdev, E_Input_Seat_Capabilities cap);
static void _pointer_touch_ecore_event_add(void *data);
+static void _input_event_add(E_Input_Evdev *evdev, int event_type, Eina_Bool touch_event, void *ev, ev_free_func free_func, void *free_func_data);
static Eina_Bool _touch_blocked_by_palm, _touch_up_blocked_by_palm;
E_Input_Backend *input;
uint32_t timestamp = 0;
const char *device_name = evdev->name;
- E_Input_Event_Info *input_event = NULL;
if (!(input = evdev->seat->input)) return;
if (event)
{
e_dev = _input_thread_mode_pointer_device_get(evdev);
ev->dev = (Eo *)g_object_ref(e_dev);
- e_input_event_add(input->event_source, ECORE_EVENT_MOUSE_MOVE, ev, _e_input_event_mouse_move_cb_free, NULL);
- }
- else
- {
- input_event = E_NEW(E_Input_Event_Info, 1);
- EINA_SAFETY_ON_NULL_GOTO(input_event, err);
- input_event->touch_event = EINA_FALSE;
- input_event->evdev = evdev;
- input_event->ev = ev;
- input_event->event_type = ECORE_EVENT_MOUSE_MOVE;
- input_event->free_func = _e_input_event_mouse_move_cb_free;
- input_event->free_func_data = NULL;
-
- ecore_main_loop_thread_safe_call_async(_pointer_touch_ecore_event_add, input_event);
}
- return;
-
-err:
- _e_input_event_mouse_move_cb_free(NULL, (void *)ev);
-
- return;
+ _input_event_add(evdev, ECORE_EVENT_MOUSE_MOVE, EINA_FALSE, ev, _e_input_event_mouse_move_cb_free, NULL);
}
void
E_Comp_Config *comp_conf;
const char *device_name = NULL;
uint32_t timestamp = 0;
- E_Input_Event_Info *input_event = NULL;
if (!(input = evdev->seat->input)) return;
if (comp_conf && comp_conf->input_log_enable)
ELOGF("Mouse", "Relative Move (time: %d, dx: %.2f, dy: %.2f, unaccel(%.2f, %.2f) device: %s)", NULL, ev->timestamp, dx[0], dy[0], dx[1], dy[1], device_name);
- input_event = E_NEW(E_Input_Event_Info, 1);
- EINA_SAFETY_ON_NULL_GOTO(input_event, err);
- input_event->touch_event = EINA_FALSE;
- input_event->evdev = evdev;
- input_event->ev = ev;
- input_event->event_type = ECORE_EVENT_MOUSE_RELATIVE_MOVE;
- input_event->free_func = _e_input_event_mouse_relative_move_cb_free;
- input_event->free_func_data = NULL;
-
- ecore_main_loop_thread_safe_call_async(_pointer_touch_ecore_event_add, input_event);
-
- return;
-
-err:
- _e_input_event_mouse_relative_move_cb_free(NULL, (void *)ev);
-
- return;
+ _input_event_add(evdev, ECORE_EVENT_MOUSE_RELATIVE_MOVE, EINA_FALSE, ev, _e_input_event_mouse_relative_move_cb_free, NULL);
}
static unsigned int
E_Device *e_dev = NULL;
E_Comp_Config *comp_conf = NULL;
const char *device_name = NULL;
- E_Input_Event_Info *input_event = NULL;
EINA_SAFETY_ON_NULL_RETURN(evdev);
{
e_dev = _input_thread_mode_pointer_device_get(evdev);
ev->dev = (Eo *)g_object_ref(e_dev);
- e_input_event_add(input->event_source, state ? ECORE_EVENT_MOUSE_BUTTON_DOWN : ECORE_EVENT_MOUSE_BUTTON_UP, ev, _e_input_event_mouse_button_cb_free, NULL);
}
- else
- {
- input_event = E_NEW(E_Input_Event_Info, 1);
- EINA_SAFETY_ON_NULL_GOTO(input_event, err);
- input_event->touch_event = EINA_FALSE;
- input_event->evdev = evdev;
- input_event->ev = ev;
- input_event->event_type = state? ECORE_EVENT_MOUSE_BUTTON_DOWN : ECORE_EVENT_MOUSE_BUTTON_UP;
- input_event->free_func = _e_input_event_mouse_button_cb_free;
- input_event->free_func_data = NULL;
- ecore_main_loop_thread_safe_call_async(_pointer_touch_ecore_event_add, input_event);
- }
-
- return;
-
-err:
- _e_input_event_mouse_button_cb_free(NULL, (void *)ev);
-
- return;
+ _input_event_add(evdev, state? ECORE_EVENT_MOUSE_BUTTON_DOWN : ECORE_EVENT_MOUSE_BUTTON_UP, EINA_FALSE, ev, _e_input_event_mouse_button_cb_free, NULL);
}
#if !LIBINPUT_HAVE_SCROLL_VALUE_V120
{
e_dev = _input_thread_mode_pointer_device_get(evdev);
ev->dev = (Eo *)g_object_ref(e_dev);
- e_input_event_add(input->event_source, ECORE_EVENT_MOUSE_WHEEL, ev, _e_input_event_mouse_wheel_cb_free, NULL);
- }
- else
- {
- input_event = E_NEW(E_Input_Event_Info, 1);
- EINA_SAFETY_ON_NULL_GOTO(input_event, err);
- input_event->touch_event = EINA_FALSE;
- input_event->evdev = evdev;
- input_event->ev = ev;
- input_event->event_type = ECORE_EVENT_MOUSE_WHEEL;
- input_event->free_func = _e_input_event_mouse_wheel_cb_free;
- input_event->free_func_data = NULL;
-
- ecore_main_loop_thread_safe_call_async(_pointer_touch_ecore_event_add, input_event);
}
- return;
-
-err:
- _e_input_event_mouse_wheel_cb_free(NULL, (void *)ev);
-
- return;
+ _input_event_add(evdev, ECORE_EVENT_MOUSE_WHEEL, EINA_FALSE, ev, _e_input_event_mouse_wheel_cb_free, NULL);
}
#endif
E_Device *e_dev = NULL;
E_Comp_Config *comp_conf = NULL;
int direction = 0, z = 0;
- E_Input_Event_Info *input_event = NULL;
EINA_SAFETY_ON_NULL_RETURN(evdev);
{
e_dev = _input_thread_mode_pointer_device_get(evdev);
ev->dev = (Eo *)g_object_ref(e_dev);
- e_input_event_add(input->event_source, ECORE_EVENT_MOUSE_WHEEL, ev, _e_input_event_mouse_wheel_cb_free, NULL);
}
- else
- {
- input_event = E_NEW(E_Input_Event_Info, 1);
- EINA_SAFETY_ON_NULL_GOTO(input_event, err);
- input_event->touch_event = EINA_FALSE;
- input_event->evdev = evdev;
- input_event->ev = ev;
- input_event->event_type = ECORE_EVENT_MOUSE_WHEEL;
- input_event->free_func = _e_input_event_mouse_wheel_cb_free;
- input_event->free_func_data = NULL;
- ecore_main_loop_thread_safe_call_async(_pointer_touch_ecore_event_add, input_event);
- }
-
- return;
-
-err:
- _e_input_event_mouse_wheel_cb_free(NULL, (void *)ev);
-
- return;
+ _input_event_add(evdev, ECORE_EVENT_MOUSE_WHEEL, EINA_FALSE, ev, _e_input_event_mouse_wheel_cb_free, NULL);
}
#endif
-
static E_Device *
_input_thread_mode_touch_device_get(E_Input_Evdev *evdev)
{
}
static void
-_input_event_add(E_Input_Evdev *evdev, int event_type, void *ev, ev_free_func free_func, void *free_func_data)
+_input_event_add(E_Input_Evdev *evdev, int event_type, Eina_Bool touch_event, void *ev, ev_free_func free_func, void *free_func_data)
{
E_Input_Backend *input;
E_Input_Event_Info *input_event = NULL;
{
input_event = E_NEW(E_Input_Event_Info, 1);
EINA_SAFETY_ON_NULL_GOTO(input_event, err);
- input_event->touch_event = EINA_TRUE;
+ input_event->touch_event = touch_event;
input_event->evdev = evdev;
input_event->event_type = event_type;
input_event->ev = ev;
err:
free_func((void *)free_func_data, (void *)ev);
-
- return;
}
static void
{
if ((ev->type == ECORE_EVENT_MOUSE_BUTTON_DOWN) ||
(ev->type == ECORE_EVENT_MOUSE_BUTTON_UP))
- _input_event_add(edev, ev->type, ev->event, _e_input_event_mouse_button_cb_free, NULL);
+ _input_event_add(edev, ev->type, EINA_TRUE, ev->event, _e_input_event_mouse_button_cb_free, NULL);
else if (ev->type == ECORE_EVENT_MOUSE_MOVE)
- _input_event_add(edev, ev->type, ev->event, _e_input_event_mouse_move_cb_free, NULL);
+ _input_event_add(edev, ev->type, EINA_TRUE, ev->event, _e_input_event_mouse_move_cb_free, NULL);
else if (ev->type == ECORE_EVENT_MOUSE_BUTTON_CANCEL)
- _input_event_add(edev, ev->type, ev->event, _e_input_event_mouse_button_cb_free, NULL);
+ _input_event_add(edev, ev->type, EINA_TRUE, ev->event, _e_input_event_mouse_button_cb_free, NULL);
else
{
ELOGF("CRI", "NOT Supported pending event. type:%d", NULL, ev->type);
ELOGF("Touch", "Failed to pend event (%s). Call ecore_event_add immediately.", NULL,
state == ECORE_EVENT_MOUSE_BUTTON_DOWN ? "DOWN" : "UP");
- _input_event_add(evdev, state, ev, _e_input_event_mouse_button_cb_free, NULL);
+ _input_event_add(evdev, state, EINA_TRUE, ev, _e_input_event_mouse_button_cb_free, NULL);
}
}
if (!_touch_event_pending_add(evdev, ECORE_EVENT_MOUSE_MOVE, ev))
{
ELOGF("Touch", "Failed to pend event (MOVE). Call ecore_event_add immediately.", NULL);
- _input_event_add(evdev, ECORE_EVENT_MOUSE_MOVE, ev, _e_input_event_mouse_move_cb_free, NULL);
+ _input_event_add(evdev, ECORE_EVENT_MOUSE_MOVE, EINA_TRUE, ev, _e_input_event_mouse_move_cb_free, NULL);
}
}
if (!_touch_event_pending_add(evdev, ECORE_EVENT_MOUSE_BUTTON_CANCEL, ev))
{
ELOGF("Touch", "Failed to pend event (CANCEL). Call ecore_event_add immediately.", NULL);
- _input_event_add(evdev, ECORE_EVENT_MOUSE_BUTTON_CANCEL, ev, _e_input_event_mouse_button_cb_free, NULL);
+ _input_event_add(evdev, ECORE_EVENT_MOUSE_BUTTON_CANCEL, EINA_TRUE, ev, _e_input_event_mouse_button_cb_free, NULL);
}
}
E_Comp_Config *comp_conf;
uint32_t timestamp = 0;
int touch_value;
- E_Input_Event_Info *input_event = NULL;
EINA_SAFETY_ON_NULL_RETURN(evdev);
}
}
- input_event = E_NEW(E_Input_Event_Info, 1);
- EINA_SAFETY_ON_NULL_GOTO(input_event, err);
- input_event->touch_event = EINA_TRUE;
- input_event->evdev = evdev;
- input_event->ev = ev;
- input_event->event_type = ECORE_EVENT_AXIS_UPDATE;
- input_event->free_func = _e_input_aux_data_event_free;
- input_event->free_func_data = NULL;
-
- ecore_main_loop_thread_safe_call_async(_pointer_touch_ecore_event_add, input_event);
-
- return;
-
-err:
- _e_input_aux_data_event_free(NULL, (void *)ev);
-
- return;
+ _input_event_add(evdev, ECORE_EVENT_AXIS_UPDATE, EINA_TRUE, ev, _e_input_aux_data_event_free, NULL);
}
E_Input_Evdev *