{NULL, NULL}
};
+static Eina_Bool
+_is_no_select(Elm_List_Item *it)
+{
+ ELM_LIST_DATA_GET_FROM_ITEM(it, sd);
+
+ if ((sd->select_mode == ELM_OBJECT_SELECT_MODE_NONE) ||
+ (sd->select_mode == ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY))
+ return EINA_TRUE;
+ return EINA_FALSE;
+}
+
static inline void
_elm_list_item_free(Elm_List_Item *it)
{
Evas_Coord x, y, w, h, sx, sy, sw, sh;
const char *focus_raise;
- if ((!sd) || (sd->select_mode == ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY) ||
+ if ((!sd) || _is_no_select(it) ||
(it == (Elm_List_Item *)sd->focused_item))
return;
evas_object_geometry_get(VIEW(it), &x, &y, &w, &h);
(it != (Elm_List_Item *)sd->focused_item))
return;
- if (sd->select_mode == ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY)
+ if (_is_no_select(it))
return;
if (elm_widget_focus_highlight_enabled_get(obj))
obj = WIDGET(it);
ELM_LIST_DATA_GET(obj, sd);
- if ((sd->select_mode == ELM_OBJECT_SELECT_MODE_NONE) ||
- (sd->select_mode == ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY) ||
+ if (_is_no_select(it) ||
(it->highlighted) || (it->base.disabled))
return;
obj = WIDGET(it);
ELM_LIST_DATA_GET(obj, sd);
- if (it->base.disabled || (sd->select_mode == ELM_OBJECT_SELECT_MODE_NONE))
+ if (it->base.disabled || _is_no_select(it))
return;
if (!sd->focus_on_selection_enabled)
{
#define ELM_LIST_DATA_GET(o, sd) \
Elm_List_Data * sd = eo_data_scope_get(o, ELM_LIST_CLASS)
+#define ELM_LIST_DATA_GET_FROM_ITEM(it, sd) \
+ ELM_LIST_DATA_GET(WIDGET(it), sd)
+
#define ELM_LIST_DATA_GET_OR_RETURN(o, ptr) \
ELM_LIST_DATA_GET(o, ptr); \
if (EINA_UNLIKELY(!ptr)) \