static void _menu_key_down_cb(int id, void *data, Evas *e, Evas_Object *obj,
Evas_Event_Key_Down *ev)
{
- struct _priv *priv;
-
- if (!data || !obj || !ev) {
+ if (!obj || !ev) {
_ERR("Invalid argument.");
return;
}
- priv = data;
switch (id) {
case MENU_MYAPPS:
- if (!strcmp(ev->key, KEY_ENTER) || !strcmp(ev->key, KEY_DOWN)) {
- elm_object_focus_set(priv->grid, EINA_TRUE);
- elm_object_item_focus_set(priv->cur_grid_item,
- EINA_TRUE);
- } else if (!strcmp(ev->key, KEY_BACK)) {
- ui_app_exit();
- }
-
- break;
-
case MENU_APPSTORE:
+ if (!strcmp(ev->key, KEY_BACK))
+ ui_app_exit();
break;
default:
}
}
+static void _menu_key_up_cb(int id, void *data, Evas *e, Evas_Object *obj,
+ Evas_Event_Key_Up *ev)
+{
+ struct _priv *priv;
+
+ if (!data || !ev) {
+ _ERR("Invalid argument.");
+ return;
+ }
+ priv = data;
+
+ if (id == MENU_MYAPPS && !strcmp(ev->key, KEY_DOWN))
+ elm_object_focus_set(priv->grid, EINA_TRUE);
+}
+
static void _destroy_sort_ctxpopup(struct _priv *priv)
{
if (!priv || !priv->sort_popup) {
priv = data;
elm_object_signal_emit(priv->focused_menu, SIG_SELECTED, "");
+
+ if (priv->cur_grid_item)
+ elm_object_item_focus_set(priv->cur_grid_item, EINA_TRUE);
}
static void _grid_item_focused_cb(void *data, Elm_Object_Item *it,
.mouse_move = _mouse_move_cb,
.clicked = _menu_clicked_cb,
.focused = _menu_focused_cb,
- .key_down = _menu_key_down_cb
+ .key_down = _menu_key_down_cb,
+ .key_up = _menu_key_up_cb
/* It will be implemented later. */
};
priv->menu_btn[MENU_COUNT - 1], ELM_FOCUS_LEFT);
elm_object_focus_next_object_set(priv->menu_btn[MENU_COUNT - 1],
priv->menu_btn[0], ELM_FOCUS_RIGHT);
+ elm_object_focus_next_object_set(priv->menu_btn[0], priv->menu_btn[0], ELM_FOCUS_DOWN);
elm_object_focus_set(priv->menu_btn[0], EINA_TRUE);
elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_RIGHT);
elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_LEFT);
elm_object_focus_next_object_set(btn, priv->grid, ELM_FOCUS_UP);
+ elm_object_focus_next_object_set(priv->grid, btn, ELM_FOCUS_DOWN);
priv->sort_btn = btn;