gengrid, genlist, list, toolbar: Fixed DISPLAY_ONLY select mode for an object.
authorDaniel Juyung Seo <seojuyung2@gmail.com>
Thu, 21 Aug 2014 15:12:40 +0000 (00:12 +0900)
committerDaniel Juyung Seo <seojuyung2@gmail.com>
Thu, 21 Aug 2014 16:12:38 +0000 (01:12 +0900)
DISPLAY_ONLY select mode for elm_xxx_item_select_mode_set works fine but
elm_xxx_select_mode_set was broken.

@fix

src/lib/elm_gengrid.c
src/lib/elm_genlist.c
src/lib/elm_list.c
src/lib/elm_toolbar.c

index efdb5d3..4b5a7ce 100644 (file)
@@ -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;
index 6562704..8479aab 100644 (file)
@@ -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)
index 455c208..6f83f8c 100644 (file)
@@ -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);
index c38a40f..bb6bb6a 100644 (file)
@@ -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)
           {