jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=8cb3b79a82b1769cba5a7a10f9937aa18dd65d8a
commit 8cb3b79a82b1769cba5a7a10f9937aa18dd65d8a Author: Jean-Philippe Andre <jp.an...@samsung.com> Date: Wed Aug 10 15:25:44 2016 +0900 evas: Optimize out a function call if not required Same as the previous patch in elm_widget: don't call flags_set() if the flags have not changed. --- src/lib/evas/canvas/evas_callbacks.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/lib/evas/canvas/evas_callbacks.c b/src/lib/evas/canvas/evas_callbacks.c index 00a5e62..cdd8fc8 100644 --- a/src/lib/evas/canvas/evas_callbacks.c +++ b/src/lib/evas/canvas/evas_callbacks.c @@ -265,7 +265,7 @@ evas_object_event_callback_call(Evas_Object *eo_obj, Evas_Object_Protected_Data /* new input events */ if (eo_event_desc) { - Efl_Event_Flags *pevflags = NULL; + Efl_Event_Flags *pevflags = NULL, evflags; #define EV_CASE(TYPE, NEWTYPE, Type) \ case EVAS_CALLBACK_ ## TYPE: \ @@ -288,9 +288,14 @@ evas_object_event_callback_call(Evas_Object *eo_obj, Evas_Object_Protected_Data } #undef EV_CASE - if (pevflags) efl_event_flags_set(eo_event_info, *pevflags); + if (pevflags) + { + efl_event_flags_set(eo_event_info, *pevflags); + evflags = *pevflags; + } eo_event_callback_call(eo_obj, eo_event_desc, eo_event_info); - if (pevflags) *pevflags = efl_event_flags_get(eo_event_info); + if (pevflags && (*pevflags != evflags)) + *pevflags = efl_event_flags_get(eo_event_info); } /* legacy callbacks - relying on Efl.Canvas.Object events */ --