if (act)
{
act->func.go = _e_mod_action_cb;
- e_action_predef_name_set(_("Everything Launcher"),
- _("Show Everything Dialog"),
- "everything", "", NULL, 0);
+ e_action_predef_name_set
+ (_("Everything Launcher"),
+ _("Show Everything Dialog"),
+ "everything", "", NULL, 0);
}
- maug = e_int_menus_menu_augmentation_add("main/1",
- _e_mod_menu_add,
- NULL, NULL, NULL);
+ maug = e_int_menus_menu_augmentation_add
+ ("main/1", _e_mod_menu_add, NULL, NULL, NULL);
- e_configure_registry_category_add("extensions", 80, _("Extensions"),
- NULL, "preferences-extensions");
+ e_configure_registry_category_add
+ ("extensions", 80, _("Extensions"), NULL, "preferences-extensions");
- e_configure_registry_item_add("extensions/run_everything", 40,
- _("Everything Configuration"),
- NULL, "system-run",
- evry_config_dialog);
+ e_configure_registry_item_add
+ ("extensions/run_everything", 40, _("Everything Configuration"),
+ NULL, "system-run", evry_config_dialog);
evry_init();
if (!EVRY_EVENT_ITEMS_UPDATE)
if (act)
{
- e_action_predef_name_del(_("Everything Launcher"), _("Show Everything Dialog"));
+ e_action_predef_name_del(_("Everything Launcher"),
+ _("Show Everything Dialog"));
e_action_del("everything");
}
int
evry_shutdown(void)
{
- evry_hide();
+ evry_hide(0);
return 1;
}
int
evry_show(E_Zone *zone, const char *params)
{
- if (win) return 0;
+ if (win)
+ {
+ Eina_List *l;
+ Evry_Plugin *p;
+
+ if (!(params && eina_list_count(selectors[0]->states) == 1))
+ evry_hide(1);
+ if (selector && params)
+ {
+ EINA_LIST_FOREACH(selectors[0]->plugins, l, p)
+ if (!strcmp(params, p->name)) break;
+
+ _evry_plugin_select(selector->state, p);
+ _evry_selector_update(selector);
+ _evry_view_update(selector->state, p);
+ }
+ return 1;
+ }
+
E_OBJECT_CHECK_RETURN(zone, 0);
E_OBJECT_TYPE_CHECK_RETURN(zone, E_ZONE_TYPE, 0);
}
void
-evry_hide(void)
+evry_hide(int clear)
{
Ecore_Event_Handler *ev;
if (!win) return;
+ if (clear && selector && eina_list_count(selectors[0]->states) > 1)
+ {
+ if (selector == selectors[1])
+ _evry_selectors_switch(-1);
+ else if (selector == selectors[2])
+ _evry_selectors_switch(1);
+
+ /* just to be sure */
+ selector = selectors[0];
+
+ while (selector->states->next)
+ _evry_state_pop(selector);
+
+ Evry_State *s = selector->state;
+ selector->aggregator->fetch(selector->aggregator, s->input);
+ _evry_selector_update(selector);
+ _evry_update_text_label(s);
+ _evry_view_show(s->view);
+ s->view->update(s->view, 1);
+
+ return;
+ }
+
/* _evry_view_clear(selector->state); */
if (_show_timer)
ecore_timer_del(_show_timer);
_evry_selector_subjects_get(const char *plugin_name)
{
Eina_List *l, *plugins = NULL;
- Evry_Plugin *p, *plugin;
+ Evry_Plugin *p, *pp;
Evry_Selector *sel = selectors[0];
- EINA_LIST_FOREACH(sel->plugins, l, plugin)
+ EINA_LIST_FOREACH(sel->plugins, l, p)
{
- if (plugin_name && strcmp(plugin_name, plugin->name))
+ if (plugin_name && strcmp(plugin_name, p->name))
continue;
- if (plugin->begin)
+ if (p->begin)
{
- if ((p = plugin->begin(plugin, NULL)))
- plugins = eina_list_append(plugins, p);
+ if ((pp = p->begin(p, NULL)))
+ plugins = eina_list_append(plugins, pp);
}
else
- plugins = eina_list_append(plugins, plugin);
+ plugins = eina_list_append(plugins, p);
}
if (!plugins) return 0;
if (!strcmp(ev->key, "Escape"))
{
- evry_hide();
+ evry_hide(0);
return 1;
}
+ else if (ev->modifiers)
+ {
+ E_Action *act;
+ Eina_List *l;
+ E_Config_Binding_Key *bind;
+ E_Binding_Modifier mod;
+
+ for (l = e_config->key_bindings; l; l = l->next)
+ {
+ bind = l->data;
+
+ if (bind->action && strcmp(bind->action, "everything")) continue;
+
+ mod = 0;
+
+ if (ev->modifiers & ECORE_EVENT_MODIFIER_SHIFT)
+ mod |= E_BINDING_MODIFIER_SHIFT;
+ if (ev->modifiers & ECORE_EVENT_MODIFIER_CTRL)
+ mod |= E_BINDING_MODIFIER_CTRL;
+ if (ev->modifiers & ECORE_EVENT_MODIFIER_ALT)
+ mod |= E_BINDING_MODIFIER_ALT;
+ if (ev->modifiers & ECORE_EVENT_MODIFIER_WIN)
+ mod |= E_BINDING_MODIFIER_WIN;
+
+ if (bind->key && (!strcmp(bind->key, ev->keyname)) &&
+ ((bind->modifiers == mod) || (bind->any_mod)))
+ {
+ if (!(act = e_action_find(bind->action))) continue;
+ if (act->func.go)
+ act->func.go(E_OBJECT(win->popup->zone), bind->params);
+ }
+ }
+ }
+
if (!selector || !selector->state)
return 1;
- s = selector->state;
win->request_selection = EINA_FALSE;
-
+ s = selector->state;
old = ev->key;
- if (((evry_conf->quick_nav == 1) && (ev->modifiers & ECORE_EVENT_MODIFIER_ALT)) ||
+ if (!strcmp(ev->key, "KP_Enter"))
+ {
+ key = eina_stringshare_add("Return");
+ }
+ else if (((evry_conf->quick_nav == 1) && (ev->modifiers & ECORE_EVENT_MODIFIER_ALT)) ||
((evry_conf->quick_nav == 2) && (ev->modifiers & ECORE_EVENT_MODIFIER_CTRL)))
{
if (!strcmp(ev->key, "k") || (!strcmp(ev->key, "K")))
ev->key = key;
}
else
-
{
key = eina_stringshare_add(ev->key);
ev->key = key;
* s_object->plugin->action(s_obj->plugin, s_act->cur_item, s_obj->cur_item); */
if (finished)
- evry_hide();
+ evry_hide(0);
}
static void