E_Gesture_Conf_Edd *conf = gesture->config->conf;
E_Keyrouter_Event_Data *key_data;
- EINA_SAFETY_ON_NULL_RETURN(e_comp_wl->xkb.keymap);
-
ev = E_NEW(Ecore_Event_Key, 1);
EINA_SAFETY_ON_NULL_RETURN(ev);
key_data = E_NEW(E_Keyrouter_Event_Data, 1);
ev->window = e_comp->ee_win;
ev->data = key_data;
- if (pressed)
- ecore_event_add(ECORE_EVENT_KEY_DOWN, ev, _e_gesture_keyevent_free, NULL);
+ if (!e_input_thread_mode_get())
+ {
+ ecore_event_add(pressed ? ECORE_EVENT_KEY_DOWN : ECORE_EVENT_KEY_UP, ev, _e_gesture_keyevent_free, NULL);
+ }
else
- ecore_event_add(ECORE_EVENT_KEY_UP, ev, _e_gesture_keyevent_free, NULL);
+ {
+ E_Input_Event_Source *input_event_source = e_input_event_source_get();
+ if (input_event_source)
+ e_input_event_add(input_event_source, pressed ? ECORE_EVENT_KEY_DOWN : ECORE_EVENT_KEY_UP, ev, _e_gesture_keyevent_free, NULL);
+ else
+ _e_gesture_keyevent_free(NULL, ev);
+ }
return;