From: Subodh Kumar Date: Tue, 10 Nov 2015 00:05:05 +0000 (-0800) Subject: hoversel: refactor a bit to avoid code duplication. X-Git-Tag: accepted/tizen/common/20160826.142851~43 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7822eb7d9c2c79f801fd29effe66031135821268;p=platform%2Fupstream%2Felementary.git hoversel: refactor a bit to avoid code duplication. ============================================================== hoversel: refactor a bit to avoid code duplication. Summary: Avoid code duplication Two dismissal signals at two different places created some confusion and also code is duplicated. Also removed some extra space. Test Plan: NA Reviewers: cedric Differential Revision: https://phab.enlightenment.org/D3269 Conflicts: src/lib/elc_hoversel.c ============================================================== Signed-Off-By: Jee-Yong Um Change-Id: Ia8ebbaff23dd3a2ad938fc96a95204dac9f260bb --- diff --git a/src/lib/elc_hoversel.c b/src/lib/elc_hoversel.c index 72667a3..51e084b 100644 --- a/src/lib/elc_hoversel.c +++ b/src/lib/elc_hoversel.c @@ -311,13 +311,33 @@ _resizing_eval(Evas_Object *obj, Elm_Hoversel_Data *sd) } static void +_hover_del(Evas_Object *obj) +{ + Elm_Object_Item *eo_item; + Eina_List *l; + + ELM_HOVERSEL_DATA_GET(obj, sd); + + sd->expanded = EINA_FALSE; + + EINA_LIST_FOREACH(sd->items, l, eo_item) + { + ELM_HOVERSEL_ITEM_DATA_GET(eo_item, it); + VIEW(it) = NULL; + } + ELM_SAFE_FREE(sd->hover, evas_object_del); + sd->scr = NULL; + sd->last_location = NULL; + + eo_do(obj, eo_event_callback_call(ELM_HOVERSEL_EVENT_DISMISSED, NULL)); +} + +static void _hover_end_finished(void *data, Evas_Object *obj EINA_UNUSED, const char *emission EINA_UNUSED, const char *source EINA_UNUSED) { - Elm_Object_Item *eo_item; - Eina_List *l; const char *dismissstr; ELM_HOVERSEL_DATA_GET(data, sd); @@ -326,18 +346,7 @@ _hover_end_finished(void *data, if (dismissstr && !strcmp(dismissstr, "on")) { - sd->expanded = EINA_FALSE; - - EINA_LIST_FOREACH(sd->items, l, eo_item) - { - ELM_HOVERSEL_ITEM_DATA_GET(eo_item, it); - VIEW(it) = NULL; - } - ELM_SAFE_FREE(sd->hover, evas_object_del); - sd->scr = NULL; - sd->last_location = NULL; - - eo_do(data, eo_event_callback_call(ELM_HOVERSEL_EVENT_DISMISSED, NULL)); + _hover_del(data); } } @@ -700,9 +709,6 @@ _elm_hoversel_hover_begin(Eo *obj, Elm_Hoversel_Data *sd) EOLIAN static void _elm_hoversel_hover_end(Eo *obj, Elm_Hoversel_Data *sd) { - - Elm_Object_Item *eo_item; - Eina_List *l; const char *dismissstr; if (!sd->hover) return; @@ -712,25 +718,10 @@ _elm_hoversel_hover_end(Eo *obj, Elm_Hoversel_Data *sd) if (dismissstr && !strcmp(dismissstr, "on")) { elm_hover_dismiss(sd->hover); - - - } else - { - sd->expanded = EINA_FALSE; - - EINA_LIST_FOREACH(sd->items, l, eo_item) - { - ELM_HOVERSEL_ITEM_DATA_GET(eo_item, it); - VIEW(it) = NULL; - } - ELM_SAFE_FREE(sd->hover, evas_object_del); - sd->scr = NULL; - sd->last_location = NULL; - - eo_do(obj, eo_event_callback_call(ELM_HOVERSEL_EVENT_DISMISSED, NULL)); + _hover_del(obj); } // for backward compatibility }