diff --git a/src/modules/everything/evry_plug_aggregator.c b/src/modules/everything/evry_plug_aggregator.c index 6b20b485a..8ed1dc962 100644 --- a/src/modules/everything/evry_plug_aggregator.c +++ b/src/modules/everything/evry_plug_aggregator.c @@ -117,16 +117,16 @@ _fetch(Evry_Plugin *plugin, const char *input) int i, cnt = 0; Eina_List *items = NULL; const char *context = NULL; + if (input && !input[0]) input = NULL; plugin->changed = 1; - s = p->selector->state; - - if (!s || !s->cur_plugins || !s->cur_plugins->next) - return 0; - EVRY_PLUGIN_ITEMS_FREE(p); + s = p->selector->state; + if (!s || !s->cur_plugins) + return 0; + /* get current 'context' ... */ for (i = 1; i < 3; i++) { @@ -138,9 +138,15 @@ _fetch(Evry_Plugin *plugin, const char *input) } } - lp = s->cur_plugins; + if (eina_list_data_find_list(s->cur_plugins, plugin)) + lp = s->cur_plugins->next; + else + lp = s->cur_plugins; - if ((lp) && (eina_list_count(lp) == 1)) + if (lp && lp->data && lp->data == plugin) + lp = s->cur_plugins->next; + + if ((lp) && (!lp->next)) { pp = lp->data; @@ -156,7 +162,7 @@ _fetch(Evry_Plugin *plugin, const char *input) } else if (input) { - EINA_LIST_FOREACH(lp, l, pp) + EINA_LIST_FOREACH(lp, l, pp) { if (!pp->aggregate) continue; diff --git a/src/modules/everything/evry_plug_view_thumb.c b/src/modules/everything/evry_plug_view_thumb.c index 8d1f80402..ded43ac90 100644 --- a/src/modules/everything/evry_plug_view_thumb.c +++ b/src/modules/everything/evry_plug_view_thumb.c @@ -668,6 +668,9 @@ _animator(void *data) { sd->slide = sd->slide_to; sd->sliding = 0; + if (sd->view->mode == VIEW_MODE_THUMB && + sd->cur_item &&sd->cur_item->frame) + edje_object_signal_emit(sd->cur_item->frame, "e,state,selected", "e"); if (sd->clearing) { @@ -784,7 +787,9 @@ _pan_item_select(Evas_Object *obj, Item *it, int scroll) else { if (sd->view->zoom < 2) - edje_object_signal_emit(sd->cur_item->frame, "e,state,selected", "e"); + { + edje_object_signal_emit(sd->cur_item->frame, "e,state,selected", "e"); + } if ((it->y + it->h) - sd->cy > sd->h) align = it->y - (2 - sd->view->zoom) * it->h; @@ -1057,11 +1062,11 @@ _view_update(Evry_View *view, int slide) v_it->pos = pos; /* TODO no needed */ - /* if (p_it == v->state->cur_item) */ - if (p_it->selected) + if (p_it == v->state->cur_item) + /* if (p_it->selected) */ { - sd->cur_item = v_it; - v_it->selected = EINA_TRUE; + sd->cur_item = v_it; + v_it->selected = EINA_TRUE; } if (pos > first_vis && pos < last_vis) @@ -1069,21 +1074,17 @@ _view_update(Evry_View *view, int slide) } pos++; } + if (v_items) eina_list_free(v_items); - sd->items = eina_list_sort(sd->items, eina_list_count(sd->items), _sort_cb); - if (!sd->cur_item && sd->items) sd->cur_item = sd->items->data; + sd->items = eina_list_sort(sd->items, -1, _sort_cb); if (update || !last_vis || v->plugin != p) { v->plugin = p; - sd->update = EINA_TRUE; - _update_frame(v->span); } - if (v_items) eina_list_free(v_items); - v->tabs->update(v->tabs); if (evry_conf->scroll_animate)