summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSubodh Kumar <s7158.kumar@samsung.com>2015-11-09 16:05:05 -0800
committerCedric BAIL <cedric@osg.samsung.com>2015-11-09 16:06:26 -0800
commit4172fb14f3a0907905f1dc65456ef7a3b94c0611 (patch)
tree6fae66c1523194ccd63030b3d5f2ad5bb5610582
parent6c04d13a8a1b34940d418051a0a5fff560f5e5c7 (diff)
downloadelementary-4172fb14f3a0907905f1dc65456ef7a3b94c0611.tar.gz
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
-rw-r--r--src/lib/elc_hoversel.c63
1 files changed, 26 insertions, 37 deletions
diff --git a/src/lib/elc_hoversel.c b/src/lib/elc_hoversel.c
index 6fb1f4f72..9f8ef4f31 100644
--- a/src/lib/elc_hoversel.c
+++ b/src/lib/elc_hoversel.c
@@ -339,13 +339,35 @@ _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);
+ elm_box_unpack(sd->bx, VIEW(it));
+ evas_object_hide(VIEW(it));
+ }
+ ELM_SAFE_FREE(sd->hover, evas_object_del);
+ sd->bx = NULL;
+ 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);
@@ -354,20 +376,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);
- elm_box_unpack(sd->bx, VIEW(it));
- evas_object_hide(VIEW(it));
- }
- ELM_SAFE_FREE(sd->hover, evas_object_del);
- sd->bx = NULL;
- sd->scr = NULL;
- sd->last_location = NULL;
-
- eo_do(data, eo_event_callback_call(ELM_HOVERSEL_EVENT_DISMISSED, NULL));
+ _hover_del(data);
}
}
@@ -679,9 +688,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;
@@ -691,27 +697,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);
- elm_box_unpack(sd->bx, VIEW(it));
- evas_object_hide(VIEW(it));
- }
- ELM_SAFE_FREE(sd->hover, evas_object_del);
- sd->scr = NULL;
- sd->last_location = NULL;
- sd->bx = NULL;
-
- eo_do(obj, eo_event_callback_call(ELM_HOVERSEL_EVENT_DISMISSED, NULL));
+ _hover_del(obj);
} // for backward compatibility
}