summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChunEon Park <hermet@hermet.pe.kr>2015-01-05 15:42:22 +0900
committerChunEon Park <hermet@hermet.pe.kr>2015-01-05 15:42:22 +0900
commit7eabba160c7e131858d25d9f279668679bc00c25 (patch)
treeace17d46c5622db50f7c0bec9ac1745bc617d467
parent4c6fa3073f34e9bf32c83751d864e1f8f305c074 (diff)
downloadenlightenment-7eabba160c7e131858d25d9f279668679bc00c25.tar.gz
genilst: unselect items if the genlist select mode is display only or none.
make it behavior same with elm_genlist_item_select_mode_set() @fix
-rw-r--r--src/lib/elm_genlist.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c
index 9ee568baba..4601dc4d70 100644
--- a/src/lib/elm_genlist.c
+++ b/src/lib/elm_genlist.c
@@ -7598,11 +7598,19 @@ _elm_genlist_item_flip_get(Eo *eo_it EINA_UNUSED, Elm_Gen_Item *it)
EOLIAN static void
_elm_genlist_select_mode_set(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd, Elm_Object_Select_Mode mode)
{
- if (mode >= ELM_OBJECT_SELECT_MODE_MAX)
+ if ((mode >= ELM_OBJECT_SELECT_MODE_MAX) || (sd->select_mode == mode))
return;
- if (sd->select_mode != mode)
- sd->select_mode = mode;
+ sd->select_mode = mode;
+
+ if ((sd->select_mode == ELM_OBJECT_SELECT_MODE_NONE) ||
+ (sd->select_mode == ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY))
+ {
+ Eina_List *l, *ll;
+ Elm_Gen_Item *it;
+ EINA_LIST_FOREACH_SAFE(sd->selected, l, ll, it)
+ _item_unselect(it);
+ }
}
EOLIAN static Elm_Object_Select_Mode