From: Daniel Juyung Seo Date: Thu, 21 Aug 2014 15:12:40 +0000 (+0900) Subject: gengrid, genlist, list, toolbar: Fixed DISPLAY_ONLY select mode for an object. X-Git-Tag: upstream/1.11.0+57+g8277704~28 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bacd57e299fee155e6c3d1767eada0419eba2c41;p=platform%2Fupstream%2Felementary.git gengrid, genlist, list, toolbar: Fixed DISPLAY_ONLY select mode for an object. DISPLAY_ONLY select mode for elm_xxx_item_select_mode_set works fine but elm_xxx_select_mode_set was broken. @fix --- diff --git a/src/lib/elm_gengrid.c b/src/lib/elm_gengrid.c index efdb5d3..4b5a7ce 100644 --- a/src/lib/elm_gengrid.c +++ b/src/lib/elm_gengrid.c @@ -523,8 +523,11 @@ _item_highlight(Elm_Gen_Item *it) const char *selectraise = NULL; Elm_Gengrid_Data *sd = GG_IT(it)->wsd; - if ((sd->select_mode == ELM_OBJECT_SELECT_MODE_NONE) - || (!sd->highlight) || (it->highlighted) || + if ((sd->select_mode == ELM_OBJECT_SELECT_MODE_NONE) || + (sd->select_mode == ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY) || + (it->select_mode == ELM_OBJECT_SELECT_MODE_NONE) || + (it->select_mode == ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY) || + (!sd->highlight) || (it->highlighted) || (it->generation < sd->generation)) return; @@ -3409,10 +3412,14 @@ _item_select(Elm_Gen_Item *it) Evas_Object *obj = WIDGET(it); Elm_Gengrid_Data *sd = GG_IT(it)->wsd; - if ((it->generation < sd->generation) || (it->decorate_it_set) || + if ((sd->select_mode == ELM_OBJECT_SELECT_MODE_NONE) || + (sd->select_mode == ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY) || (it->select_mode == ELM_OBJECT_SELECT_MODE_NONE) || - (sd->select_mode == ELM_OBJECT_SELECT_MODE_NONE)) + (it->select_mode == ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY) || + (it->generation < sd->generation) || + (it->decorate_it_set)) return; + if (!it->selected) { it->selected = EINA_TRUE; diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c index 6562704..8479aab 100644 --- a/src/lib/elm_genlist.c +++ b/src/lib/elm_genlist.c @@ -3107,12 +3107,13 @@ _item_highlight(Elm_Gen_Item *it) ELM_GENLIST_DATA_GET_FROM_ITEM(it, sd); if ((sd->select_mode == ELM_OBJECT_SELECT_MODE_NONE) || + (sd->select_mode == ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY) || + (it->select_mode == ELM_OBJECT_SELECT_MODE_NONE) || + (it->select_mode == ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY) || (!sd->highlight) || (it->generation < sd->generation) || (it->highlighted) || elm_widget_item_disabled_get(it) || - (it->select_mode == ELM_OBJECT_SELECT_MODE_NONE) || - (it->item->deco_it_view) || - (it->select_mode == ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY)) + (it->item->deco_it_view)) return; edje_object_signal_emit(VIEW(it), "elm,state,selected", "elm"); @@ -4531,7 +4532,8 @@ _item_mouse_up_cb(void *data, } } if (elm_widget_item_disabled_get(it) || (dragged) || - (it->select_mode == ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY)) + (it->select_mode == ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY) || + (sd->select_mode == ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY)) return; if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return; @@ -5534,10 +5536,12 @@ _item_select(Elm_Gen_Item *it) Evas_Object *obj = WIDGET(it); ELM_GENLIST_DATA_GET_FROM_ITEM(it, sd); - if ((it->generation < sd->generation) || - (it->decorate_it_set) || + if ((sd->select_mode == ELM_OBJECT_SELECT_MODE_NONE) || + (sd->select_mode == ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY) || (it->select_mode == ELM_OBJECT_SELECT_MODE_NONE) || - (sd->select_mode == ELM_OBJECT_SELECT_MODE_NONE)) + (it->select_mode == ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY) || + (it->generation < sd->generation) || + (it->decorate_it_set)) return; if (!it->selected) diff --git a/src/lib/elm_list.c b/src/lib/elm_list.c index 455c208..6f83f8c 100644 --- a/src/lib/elm_list.c +++ b/src/lib/elm_list.c @@ -1315,8 +1315,10 @@ _item_highlight(Elm_List_Item *it) obj = WIDGET(it); ELM_LIST_DATA_GET(obj, sd); - if ((it->highlighted) || (it->base.disabled) || - (sd->select_mode == ELM_OBJECT_SELECT_MODE_NONE)) return; + if ((sd->select_mode == ELM_OBJECT_SELECT_MODE_NONE) || + (sd->select_mode == ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY) || + (it->highlighted) || (it->base.disabled)) + return; evas_object_ref(obj); _elm_list_walk(sd); diff --git a/src/lib/elm_toolbar.c b/src/lib/elm_toolbar.c index c38a40f..bb6bb6a 100644 --- a/src/lib/elm_toolbar.c +++ b/src/lib/elm_toolbar.c @@ -1026,7 +1026,8 @@ _item_select(Elm_Toolbar_Item *it) return; sel = it->selected; - if (sd->select_mode != ELM_OBJECT_SELECT_MODE_NONE) + if ((sd->select_mode != ELM_OBJECT_SELECT_MODE_NONE) && + (sd->select_mode != ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY)) { if (sel) {