jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=04e3d40ec39b52185325429f9fba52b8bf5e26b3
commit 04e3d40ec39b52185325429f9fba52b8bf5e26b3 Author: Jean-Philippe Andre <jp.an...@samsung.com> Date: Tue Nov 8 13:26:32 2016 +0900 evas: Fix performance issue with move See T4749, 11b7cf6b728001dbcd42ce4 introduced an issue and e1e28ce32062d83b95620c854 fixed it but caused a massive performance impact. This should fix that. Thanks @zmike for the first patch. Fixes T4840 --- src/lib/evas/canvas/evas_object_intercept.c | 7 ++++++- src/lib/evas/canvas/evas_object_main.c | 2 -- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/lib/evas/canvas/evas_object_intercept.c b/src/lib/evas/canvas/evas_object_intercept.c index 14668df..42b490e 100644 --- a/src/lib/evas/canvas/evas_object_intercept.c +++ b/src/lib/evas/canvas/evas_object_intercept.c @@ -120,7 +120,12 @@ _evas_object_intercept_call(Evas_Object *eo_obj, Evas_Object_Intercept_Cb_Type c } i = va_arg(args, int); j = va_arg(args, int); - if (!obj->interceptors) goto end_noblock; + if (!obj->interceptors) + { + if ((obj->cur->geometry.x == i) && (obj->cur->geometry.y == j)) + blocked = EINA_TRUE; + break; + } blocked = evas_object_intercept_call_move(eo_obj, obj, i, j); break; diff --git a/src/lib/evas/canvas/evas_object_main.c b/src/lib/evas/canvas/evas_object_main.c index 89621c6..76c3c2b 100644 --- a/src/lib/evas/canvas/evas_object_main.c +++ b/src/lib/evas/canvas/evas_object_main.c @@ -814,8 +814,6 @@ _efl_canvas_object_efl_gfx_position_set(Eo *eo_obj, Evas_Object_Protected_Data * if (_evas_object_intercept_call(eo_obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 1, x, y)) return; - if ((obj->cur->geometry.x == x) && (obj->cur->geometry.y == y)) return; - Evas_Map *map; map = (Evas_Map *) evas_object_map_get(eo_obj); if (map && map->move_sync.enabled) --