diff --git a/legacy/edje/src/lib/edje_entry.c b/legacy/edje/src/lib/edje_entry.c index d44c4ccf45..4c5add9c3b 100644 --- a/legacy/edje/src/lib/edje_entry.c +++ b/legacy/edje/src/lib/edje_entry.c @@ -336,23 +336,34 @@ _sel_update(Evas_Textblock_Cursor *c, Evas_Object *o, Entry *en) } x = y = w = h = -1; evas_object_geometry_get(o, &x, &y, &w, &h); - EINA_LIST_FOREACH(en->sel, l, sel) + if (en->have_selection) { - Evas_Textblock_Rectangle *r; - - r = range->data; - if (sel->obj_bg) + EINA_LIST_FOREACH(en->sel, l, sel) { - evas_object_move(sel->obj_bg, x + r->x, y + r->y); - evas_object_resize(sel->obj_bg, r->w, r->h); + Evas_Textblock_Rectangle *r; + + r = range->data; + if (sel->obj_bg) + { + evas_object_move(sel->obj_bg, x + r->x, y + r->y); + evas_object_resize(sel->obj_bg, r->w, r->h); + } + if (sel->obj_fg) + { + evas_object_move(sel->obj_fg, x + r->x, y + r->y); + evas_object_resize(sel->obj_fg, r->w, r->h); + } + range = eina_list_remove_list(range, range); + free(r); } - if (sel->obj_fg) + } + else + { + while (range) { - evas_object_move(sel->obj_fg, x + r->x, y + r->y); - evas_object_resize(sel->obj_fg, r->w, r->h); + free(range->data); + range = eina_list_remove_list(range, range); } - range = eina_list_remove_list(range, range); - free(r); } } diff --git a/legacy/edje/src/lib/edje_var.c b/legacy/edje/src/lib/edje_var.c index 8aaf8190d0..c42db04495 100644 --- a/legacy/edje/src/lib/edje_var.c +++ b/legacy/edje/src/lib/edje_var.c @@ -1006,7 +1006,8 @@ _edje_var_anim_add(Edje *ed, double len, const char *fname, int val) ea->edje = ed; ea->func = fn; ea->val = val; - _edje_anim_list = eina_list_append(_edje_anim_list, ed); + if (!ed->var_pool->animators) + _edje_anim_list = eina_list_append(_edje_anim_list, ed); ed->var_pool->animators = eina_list_prepend(ed->var_pool->animators, ea); if (!_edje_animator) _edje_animator = ecore_animator_add(_edje_var_anim_cb, NULL);