static Eina_Bool _ecore_event_evas_key(Ecore_Event_Key *e, Ecore_Event_Press press) { Ecore_Input_Window *lookup; lookup = _ecore_event_window_match(e->event_window); if (!lookup) return ECORE_CALLBACK_PASS_ON; ecore_event_evas_modifier_lock_update(lookup->evas, e->modifiers); if (press == ECORE_DOWN) evas_event_feed_key_down_with_keycode(lookup->evas, e->keyname, e->key, e->string, e->compose, e->timestamp, e->data, e->keycode); else evas_event_feed_key_up_with_keycode(lookup->evas, e->keyname, e->key, e->string, e->compose, e->timestamp, e->data, e->keycode); return ECORE_CALLBACK_PASS_ON; }
static Eina_Bool _ecore_event_evas_mouse_button(Ecore_Event_Mouse_Button *e, Ecore_Event_Press press) { Ecore_Input_Window *lookup; Evas_Button_Flags flags = EVAS_BUTTON_NONE; lookup = _ecore_event_window_match(e->event_window); if (!lookup) return ECORE_CALLBACK_RENEW; if (e->double_click) flags |= EVAS_BUTTON_DOUBLE_CLICK; if (e->triple_click) flags |= EVAS_BUTTON_TRIPLE_CLICK; if (e->multi.device == 0) { ecore_event_evas_modifier_lock_update(lookup->evas, e->modifiers); if (press == ECORE_DOWN) evas_event_feed_mouse_down(lookup->evas, e->buttons, flags, e->timestamp, NULL); else evas_event_feed_mouse_up(lookup->evas, e->buttons, flags, e->timestamp, NULL); } else { if (press == ECORE_DOWN) { if (lookup->down_multi) lookup->down_multi(lookup->window, e->multi.device, e->x, e->y, e->multi.radius, e->multi.radius_x, e->multi.radius_y, e->multi.pressure, e->multi.angle, e->multi.x, e->multi.y, flags, e->timestamp); else evas_event_feed_multi_down(lookup->evas, e->multi.device, e->x, e->y, e->multi.radius, e->multi.radius_x, e->multi.radius_y, e->multi.pressure, e->multi.angle, e->multi.x, e->multi.y, flags, e->timestamp, NULL); } else { if (lookup->up_multi) lookup->up_multi(lookup->window, e->multi.device, e->x, e->y, e->multi.radius, e->multi.radius_x, e->multi.radius_y, e->multi.pressure, e->multi.angle, e->multi.x, e->multi.y, flags, e->timestamp); else evas_event_feed_multi_up(lookup->evas, e->multi.device, e->x, e->y, e->multi.radius, e->multi.radius_x, e->multi.radius_y, e->multi.pressure, e->multi.angle, e->multi.x, e->multi.y, flags, e->timestamp, NULL); } } return ECORE_CALLBACK_RENEW; }