From 70c0a5239445202daf15927969bf1d2739de264a Mon Sep 17 00:00:00 2001 From: Gustavo Sverzut Barbieri Date: Sat, 15 Aug 2009 01:27:25 +0000 Subject: [PATCH] everything: Home/End to go first/last in the list. SVN revision: 41784 --- src/modules/everything/evry.c | 36 +++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/modules/everything/evry.c b/src/modules/everything/evry.c index 5533bf701..8b46e2b4b 100644 --- a/src/modules/everything/evry.c +++ b/src/modules/everything/evry.c @@ -129,6 +129,8 @@ static void _evry_list_update(Evry_State *s); static void _evry_list_show_items(Evry_State *s, Evry_Plugin *plugin); static void _evry_list_item_next(Evry_State *s); static void _evry_list_item_prev(Evry_State *s); +static void _evry_list_item_first(Evry_State *s); +static void _evry_list_item_last(Evry_State *s); static void _evry_list_plugin_next(Evry_State *s); static void _evry_list_plugin_prev(Evry_State *s); static void _evry_list_plugin_next_by_name(Evry_State *s, const char *key); @@ -1226,6 +1228,10 @@ _evry_cb_key_down(void *data __UNUSED__, int type __UNUSED__, void *event) else if ((!strcmp(ev->key, "BackSpace")) || (!strcmp(ev->key, "Delete"))) _evry_backspace(s); + else if (!strcmp(ev->key, "End")) + _evry_list_item_last(s); + else if (!strcmp(ev->key, "Home")) + _evry_list_item_first(s); else if (!strcmp(ev->key, "v") && (ev->modifiers & ECORE_EVENT_MODIFIER_CTRL)) { @@ -1798,6 +1804,36 @@ _evry_list_item_prev(Evry_State *s) _evry_list_win_hide(); } +static void +_evry_list_item_first(Evry_State *s) +{ + Eina_List *l; + Evry_Item *it; + + if (!s->plugin || !s->plugin->items) return; + + s->plugin_auto_selected = EINA_FALSE; + s->item_auto_selected = EINA_FALSE; + + _evry_list_item_sel(s, s->plugin->items->data); + _evry_selector_update(selector); +} + +static void +_evry_list_item_last(Evry_State *s) +{ + Eina_List *l; + Evry_Item *it; + + if (!s->plugin || !s->plugin->items) return; + + s->plugin_auto_selected = EINA_FALSE; + s->item_auto_selected = EINA_FALSE; + + _evry_list_item_sel(s, eina_list_last(s->plugin->items)->data); + _evry_selector_update(selector); +} + static void _evry_select_plugin(Evry_State *s, Evry_Plugin *p) {