Eina_Bool input_panel_return_key_disabled : 1;
//// TIZEN ONLY
Evas_Object *hoversel;
- Evas_Object *hover;
- Evas_Object *layout;
- Evas_Object *list;
Evas_Object *mgf_proxy;
Evas_Object *mgf_clip;
Evas_Object *mgf_bg;
Ecore_Job *region_recalc_job;
const char *password_text;
Evas_Coord cx, cy, cw, ch;
- Eina_List *match_list;
- Ecore_Job *matchlist_job;
- int matchlist_threshold;
Eina_Bool double_clicked : 1;
Eina_Bool long_pressed : 1;
Eina_Bool magnifier_enabled : 1;
- Eina_Bool matchlist_list_clicked : 1;
- Eina_Bool matchlist_case_sensitive : 1;
Elm_CNP_Mode cnp_mode : 2;
//
};
static const char SIG_PREEDIT_CHANGED[] = "preedit,changed";
static const char SIG_UNDO_REQUEST[] = "undo,request";
static const char SIG_REDO_REQUEST[] = "redo,request";
-// TIZEN ONLY
-static const char SIG_MATCHLIST_CLICKED[] = "matchlist,clicked";
-//
static const Evas_Smart_Cb_Description _signals[] = {
{SIG_CHANGED, ""},
{SIG_ACTIVATED, ""},
{SIG_CHANGED_USER, ""},
{SIG_UNDO_REQUEST, ""},
{SIG_REDO_REQUEST, ""},
- {SIG_MATCHLIST_CLICKED, ""}, // TIZEN ONLY
{NULL, NULL}
};
wd->append_text_left = NULL;
wd->append_text_idler = NULL;
}
- if (wd->matchlist_job) ecore_job_del(wd->matchlist_job);
if (wd->mgf_proxy) evas_object_del(wd->mgf_proxy);
if (wd->mgf_bg) evas_object_del(wd->mgf_bg);
if (wd->mgf_clip) evas_object_del(wd->mgf_clip);
#endif
static void
-_matchlist_show(void *data)
-{
- Widget_Data *wd = elm_widget_data_get(data);
- const char *text = NULL;
- int textlen = 0;
- char *str_list = NULL, *str_result = NULL;
- char *str_mkup = NULL, *str_front = NULL, *str_mid = NULL;
-
- Eina_List *l;
- Eina_Bool textfound = EINA_FALSE;
-
- if (!wd) return;
- if (elm_widget_disabled_get(data)) return;
-
- wd->matchlist_job = NULL;
-
- if (wd->matchlist_list_clicked)
- {
- evas_object_hide(wd->hover);
- wd->matchlist_list_clicked = EINA_FALSE;
- return;
- }
- text = elm_entry_entry_get(data);
- if (text == NULL)
- return;
- textlen = strlen(text);
-
- if (textlen < wd->matchlist_threshold)
- {
- evas_object_hide(wd->hover);
- return;
- }
-
- evas_object_hide(wd->hover);
-
- if (wd->match_list)
- {
- elm_list_clear(wd->list);
- EINA_LIST_FOREACH(wd->match_list, l, str_list)
- {
- if (wd->matchlist_case_sensitive)
- str_result = strstr(str_list, text);
- else
-#ifdef HAVE_STRCASESTR
- str_result = strcasestr(str_list, text);
-#else
- str_result = _strcasestr(str_list, text);
-#endif
-
- if (str_result)
- {
- str_mkup = malloc(strlen(str_list) + 16);
- if (str_mkup == NULL) return;
-
- textlen = strlen(str_list) - strlen(str_result);
- str_front = malloc(textlen + 1);
- if (str_front == NULL)
- {
- free(str_mkup);
- return;
- }
-
- memset(str_front, 0, textlen + 1);
- strncpy(str_front, str_list, textlen);
-
- textlen = strlen(text);
- str_mid = malloc(textlen + 1);
- if (str_mid == NULL)
- {
- free(str_mkup);
- free(str_front);
- return;
- }
-
- memset(str_mid, 0, textlen + 1);
- strncpy(str_mid, str_list + strlen(str_front), textlen);
-
- sprintf(str_mkup, "%s<match>%s</match>%s", str_front, str_mid, str_result + strlen(text));
-
- elm_list_item_append(wd->list, str_mkup, NULL, NULL, NULL, NULL);
-
- if (str_mkup) free(str_mkup);
- if (str_front) free(str_front);
- if (str_mid) free(str_mid);
-
- textfound=EINA_TRUE;
- }
- }
- }
- else
- return;
-
- if (textfound)
- {
- elm_list_go(wd->list);
- evas_object_show(wd->hover);
- evas_object_raise(wd->hover);
- }
-}
-
-static void _matchlist_list_clicked( void *data, Evas_Object *obj, void *event_info )
-{
- Elm_Object_Item *it = (Elm_Object_Item *) elm_list_selected_item_get(obj);
- Widget_Data *wd = elm_widget_data_get(data);
- if ((it == NULL) || (wd == NULL))
- return;
-
- const char *str = NULL;
- const char *text = elm_list_item_label_get(it);
- evas_object_smart_callback_call((Evas_Object *)data, "selected", (void *)text);
- if (wd->match_list)
- {
- if (text != NULL)
- {
- str = elm_entry_markup_to_utf8(text);
- elm_entry_entry_set(data, str);
- elm_entry_cursor_end_set(data);
- wd->matchlist_list_clicked = EINA_TRUE;
-
- evas_object_smart_callback_call(data, SIG_MATCHLIST_CLICKED, elm_entry_markup_to_utf8(text));
- free(str);
- }
- }
- elm_widget_focus_set(data, EINA_TRUE);
-}
-
-static void
_entry_changed_common_handling(void *data, const char *event)
{
Widget_Data *wd = elm_widget_data_get(data);
wd->delay_write = NULL;
}
- if ((wd->single_line) && (wd->match_list))
- {
- if (wd->matchlist_job) ecore_job_del(wd->matchlist_job);
- wd->matchlist_job = ecore_job_add(_matchlist_show, data);
- }
-
if ((wd->api) && (wd->api->obj_hidemenu))
wd->api->obj_hidemenu(data);
}
EAPI void
-elm_entry_matchlist_set(Evas_Object *obj, Eina_List *match_list, Eina_Bool case_sensitive)
-{
- Widget_Data *wd = elm_widget_data_get(obj);
- if (!wd) return;
-
- if (match_list)
- {
- Evas_Coord max_w = 9999, max_h = 9999;
- const char* key_data = NULL;
-
- wd->matchlist_threshold = 1;
- wd->hover = elm_hover_add(elm_widget_parent_get(obj));
- elm_hover_parent_set(wd->hover, elm_widget_parent_get(obj));
- elm_hover_target_set(wd->hover, obj);
- elm_object_style_set(wd->hover, "matchlist");
-
- wd->layout = elm_layout_add(wd->hover);
- elm_layout_theme_set(wd->layout, "entry", "matchlist", "default");
- wd->list = elm_list_add(wd->layout);
- evas_object_size_hint_weight_set(wd->list, EVAS_HINT_EXPAND, 0.0);
- evas_object_size_hint_align_set(wd->list, EVAS_HINT_FILL, EVAS_HINT_FILL);
- elm_list_mode_set(wd->list, ELM_LIST_EXPAND);
- elm_object_style_set(wd->list, "matchlist");
-
- key_data = edje_object_data_get(elm_layout_edje_get(wd->layout), "max_width");
- if (key_data) max_w = atoi(key_data);
- key_data = edje_object_data_get(elm_layout_edje_get(wd->layout), "max_height");
- if (key_data) max_h = atoi(key_data);
-
- elm_list_go(wd->list);
- evas_object_size_hint_max_set(wd->list, max_w, max_h);
- evas_object_smart_callback_add(wd->list, "selected", _matchlist_list_clicked, obj);
- elm_layout_content_set(wd->layout, "elm.swallow.content", wd->list);
- elm_hover_content_set(wd->hover, "bottom", wd->layout);
-
- wd->match_list = match_list;
- }
- else
- {
- if (wd->hover)
- evas_object_del(wd->hover);
-
- wd->match_list = NULL;
- }
-
- wd->matchlist_case_sensitive = case_sensitive;
-}
-
-EAPI void
elm_entry_magnifier_type_set(Evas_Object *obj, int type)
{
ELM_CHECK_WIDTYPE(obj, widtype);
Eina_Inlist *items, *blocks;
Eina_List *group_items;
Pan *pan;
- Evas_Coord pan_x, pan_y, old_pan_y, w, h, minw, minh, realminw, prev_viewport_w;
+ Evas_Coord pan_x, pan_y, reorder_old_pan_y, w, h, minw, minh, realminw, prev_viewport_w;
Ecore_Job *calc_job, *update_job;
Ecore_Idle_Enterer *queue_idle_enterer;
Ecore_Idler *must_recalc_idler;
int group_item_height;
int max_items_per_block;
double longpress_timeout;
+ int generation;
// TODO : refactoring
Eina_Bool reorder_deleted : 1;
int relcount;
int walking;
+ int generation;
int expanded_depth;
int order_num_in;
int position;
Eina_Bool mincalcd : 1;
Eina_Bool queued : 1;
Eina_Bool showme : 1;
- Eina_Bool delete_me : 1;
Eina_Bool down : 1;
Eina_Bool dragging : 1;
Eina_Bool updateme : 1;
if (!wd->selected)
{
prev = ELM_GENLIST_ITEM_FROM_INLIST(wd->items->last);
- while ((prev) && (prev->delete_me))
+ while ((prev) && (prev->generation < wd->generation))
prev = ELM_GENLIST_ITEM_FROM_INLIST(EINA_INLIST_GET(prev)->prev);
}
else prev = (Elm_Genlist_Item *)elm_genlist_item_prev_get(wd->last_selected_item);
if (!wd->selected)
{
next = ELM_GENLIST_ITEM_FROM_INLIST(wd->items);
- while ((next) && (next->delete_me))
+ while ((next) && (next->generation < wd->generation))
next = ELM_GENLIST_ITEM_FROM_INLIST(EINA_INLIST_GET(next)->next);
}
else next = (Elm_Genlist_Item *) elm_genlist_item_next_get(wd->last_selected_item);
_item_highlight(Elm_Genlist_Item *it)
{
const char *selectraise;
- if ((it->wd->no_select) || (it->no_select) || (it->delete_me) || (it->highlighted) ||
- elm_widget_item_disabled_get(it) || (it->display_only))
+ if ((it->wd->no_select) || (it->no_select) || (it->generation < it->wd->generation) ||
+ (it->highlighted) || elm_widget_item_disabled_get(it) || (it->display_only))
return;
edje_object_signal_emit(VIEW(it), "elm,state,selected", "elm");
if (it->edit_obj) edje_object_signal_emit(it->edit_obj, "elm,state,selected", "elm");
static void
_item_unhighlight(Elm_Genlist_Item *it)
{
- if ((it->delete_me) || (!it->highlighted)) return;
+ if ((it->generation < it->wd->generation) || (!it->highlighted)) return;
edje_object_signal_emit(VIEW(it), "elm,state,unselected", "elm");
if (it->edit_obj) edje_object_signal_emit(it->edit_obj, "elm,state,unselected", "elm");
if (!it->nostacking)
}
static void
+_clear_cb(Widget_Data *wd)
+{
+ wd->anchor_item = NULL;
+ while (wd->blocks)
+ {
+ Item_Block *itb = (Item_Block *)(wd->blocks);
+
+ wd->blocks = eina_inlist_remove(wd->blocks, wd->blocks);
+ if (itb->items) eina_list_free(itb->items);
+ free(itb);
+ }
+ if (wd->queue_idle_enterer)
+ {
+ ecore_idle_enterer_del(wd->queue_idle_enterer);
+ wd->queue_idle_enterer = NULL;
+ }
+ if (wd->must_recalc_idler)
+ {
+ ecore_idler_del(wd->must_recalc_idler);
+ wd->must_recalc_idler = NULL;
+ }
+ if (wd->queue) wd->queue = eina_list_free(wd->queue);
+ if (wd->reorder_move_animator)
+ {
+ ecore_animator_del(wd->reorder_move_animator);
+ wd->reorder_move_animator = NULL;
+ }
+ wd->show_item = NULL;
+ wd->reorder_old_pan_y = 0;
+}
+
+static void
_item_select(Elm_Genlist_Item *it)
{
Eina_List *l;
Evas_Object *obj;
- if ((it->wd->no_select) || (it->no_select) || (it->delete_me)) return;
+ if ((it->wd->no_select) || (it->no_select) || (it->generation < it->wd->generation)) return;
if (!it->selected)
{
it->selected = EINA_TRUE;
((Elm_Genlist_Item *)it->wd->last_selected_item)->can_focus = EINA_FALSE;
}
if (it->func.func) it->func.func((void *)it->func.data, WIDGET(it), it);
- if (!it->delete_me)
+ if (it->generation == it->wd->generation)
evas_object_smart_callback_call(WIDGET(it), SIG_SELECTED, it);
it->walking--;
it->wd->walking--;
- evas_object_unref(WIDGET(it));
if ((it->wd->clear_me) && (!it->wd->walking))
_elm_genlist_clear(WIDGET(it), EINA_TRUE);
else
{
- if ((!it->walking) && (it->delete_me))
+ if ((!it->walking) && (it->generation < it->wd->generation))
{
if (!it->relcount)
{
else
it->wd->last_selected_item = (Elm_Object_Item *) it;
}
+ evas_object_unref(WIDGET(it));
}
static void
_item_unselect(Elm_Genlist_Item *it)
{
- if ((it->delete_me) || (!it->selected)) return;
+ if ((it->generation < it->wd->generation) || (!it->selected)) return;
it->selected = EINA_FALSE;
it->wd->selected = eina_list_remove(it->wd->selected, it);
evas_object_smart_callback_call(WIDGET(it), SIG_UNSELECTED, it);
if (!data) return;
if (!obj) return;
Elm_Genlist_Item *it = data;
- if ((it->delete_me) || (!it->realized) || (!it->mode_view)) return;
+ if ((it->generation < it->wd->generation) || (!it->realized) || (!it->mode_view)) return;
char buf[1024];
Evas *te = evas_object_evas_get(obj);
int tsize = 20;
Item_Cache *itc = NULL;
- if ((it->realized) || (it->delete_me)) return;
+ if (it->generation < it->wd->generation) return;
evas_event_freeze(evas_object_evas_get(it->wd->obj));
if (it->realized)
{
itb->num = in;
EINA_LIST_FOREACH(itb->items, l, it)
{
- if (it->delete_me) continue;
+ if (it->generation < it->wd->generation) continue;
showme |= it->showme;
if (!itb->realized)
{
&cvw, &cvh);
EINA_LIST_FOREACH(itb->items, l, it)
{
- if (it->delete_me) continue;
+ if (it->generation < it->wd->generation) continue;
else if (it->wd->reorder_it == it) continue;
it->x = 0;
Eina_Bool minw_change = EINA_FALSE;
Eina_Bool did_must_recalc = EINA_FALSE;
if (!wd) return;
- ELM_CHECK_WIDTYPE(wd->obj, widtype);
+ ELM_CHECK_WIDTYPE(wd->obj,widtype);
t0 = ecore_time_get();
evas_object_geometry_get(wd->pan_smart, NULL, NULL, &ow, &wd->h);
if ((sd->wd->reorder_mode) && (sd->wd->reorder_it))
{
- if (sd->wd->pan_y != sd->wd->old_pan_y)
+ if (sd->wd->pan_y != sd->wd->reorder_old_pan_y)
sd->wd->reorder_pan_move = EINA_TRUE;
else sd->wd->reorder_pan_move = EINA_FALSE;
evas_object_raise(sd->wd->reorder_it->edit_obj);
- sd->wd->old_pan_y = sd->wd->pan_y;
+ sd->wd->reorder_old_pan_y = sd->wd->pan_y;
sd->wd->start_time = ecore_loop_time_get();
}
{
char buf[1024];
- if ((it->mode_view) || (it->delete_me)) return;
+ if ((it->mode_view) || (it->generation < it->wd->generation)) return;
evas_event_freeze(evas_object_evas_get(it->wd->obj));
it->mode_view = edje_object_add(evas_object_evas_get(WIDGET(it)));
elm_widget_on_show_region_hook_set(obj, _show_region_hook, obj);
elm_widget_translate_hook_set(obj, _translate_hook);
+ wd->generation = 1;
wd->scr = elm_smart_scroller_add(e);
evas_object_event_callback_add(wd->scr, EVAS_CALLBACK_MOUSE_DOWN,
_mouse_down_scroller, obj);
Evas_Object *obj;
Elm_Genlist_Item *_it = (Elm_Genlist_Item *) it;
- if (_it->delete_me) return;
+ if (_it->generation < _it->wd->generation) return;
if (_it->selected)
elm_genlist_item_selected_set(it, EINA_FALSE);
it = elm_widget_item_new(wd->obj, Elm_Genlist_Item);
if (!it) return NULL;
it->wd = wd;
- //it->generation = wd->generation; //upstream
+ it->generation = wd->generation;
it->itc = itc;
it->base.data = data;
it->parent = parent;
if (it->rel)
{
it->rel->relcount--;
- if ((it->rel->delete_me) && (!it->rel->relcount))
+ if ((it->rel->generation < it->wd->generation) && (!it->rel->relcount))
{
_item_del(it->rel);
elm_widget_item_free(it->rel);
if (ll) it2 = ll->data;
it->parent->items = eina_list_append(it->parent->items, it);
if (!it2) it2 = it->parent;
- if (it2->delete_me)
+ if (it2->generation < it2->wd->generation)
it2 = (Elm_Genlist_Item *) elm_genlist_item_prev_get((Elm_Object_Item *) it2);
wd->items =
eina_inlist_append_relative(wd->items, EINA_INLIST_GET(it),
if (ll) it2 = ll->data;
it->parent->items = eina_list_prepend(it->parent->items, it);
if (!it2) it2 = it->parent;
- if (it2->delete_me)
+ if (it2->generation < it2->wd->generation)
it2 = (Elm_Genlist_Item *) elm_genlist_item_next_get((Elm_Object_Item *) it2);
wd->items =
eina_inlist_prepend_relative(wd->items, EINA_INLIST_GET(it),
static void
_elm_genlist_clear(Evas_Object *obj, Eina_Bool standby)
{
+ Eina_Inlist *next, *l;
+
ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
+
+ if (!standby) wd->generation++;
+
if (wd->walking > 0)
{
- Elm_Genlist_Item *it;
-
wd->clear_me = EINA_TRUE;
- EINA_INLIST_FOREACH(wd->items, it)
- {
- it->delete_me = EINA_TRUE;
- }
return;
}
evas_event_freeze(evas_object_evas_get(wd->obj));
- while (wd->items)
+ for (l = wd->items, next = l ? l->next : NULL;
+ l;
+ l = next, next = next ? next->next : NULL)
{
- Elm_Genlist_Item *it = ELM_GENLIST_ITEM_FROM_INLIST(wd->items);
- it->nocache = EINA_TRUE;
- it->highlighted = EINA_FALSE;
-#ifdef ANCHOR_ITEM
- if (wd->anchor_item == it)
+ Elm_Genlist_Item *it = ELM_GENLIST_ITEM_FROM_INLIST(l);
+
+ if (it->generation < wd->generation)
{
- wd->anchor_item = ELM_GENLIST_ITEM_FROM_INLIST(EINA_INLIST_GET(it)->next);
- if (!wd->anchor_item)
- wd->anchor_item =
- ELM_GENLIST_ITEM_FROM_INLIST(EINA_INLIST_GET(it)->prev);
+ Elm_Genlist_Item *itn = NULL;
+
+ if (next) itn = ELM_GENLIST_ITEM_FROM_INLIST(next);
+ if (itn) itn->walking++; /* prevent early death of subitem */
+ _item_del(it);
+ elm_widget_item_free(it);
+ if (itn) itn->walking--;
}
-#endif
- wd->items = eina_inlist_remove(wd->items, wd->items);
- if (it->flags & ELM_GENLIST_ITEM_GROUP)
- it->wd->group_items = eina_list_remove(it->wd->group_items, it);
- elm_widget_item_pre_notify_del(it);
- if (it->realized) _item_unrealize(it, EINA_FALSE);
- if (((wd->clear_me) || (!it->delete_me)) && (it->itc->func.del))
- it->itc->func.del((void *)it->base.data, WIDGET(it));
- if (it->long_timer) ecore_timer_del(it->long_timer);
- if (it->swipe_timer) ecore_timer_del(it->swipe_timer);
-// elm_widget_item_del(it);
}
wd->clear_me = EINA_FALSE;
- wd->anchor_item = NULL;
- while (wd->blocks)
- {
- Item_Block *itb = (Item_Block *)(wd->blocks);
-
- wd->blocks = eina_inlist_remove(wd->blocks, wd->blocks);
- if (itb->items) eina_list_free(itb->items);
- free(itb);
- }
wd->pan_changed = EINA_TRUE;
if (wd->calc_job)
{
ecore_job_del(wd->calc_job);
wd->calc_job = NULL;
}
- if (wd->queue_idle_enterer)
- {
- ecore_idle_enterer_del(wd->queue_idle_enterer);
- wd->queue_idle_enterer = NULL;
- }
- if (wd->must_recalc_idler)
- {
- ecore_idler_del(wd->must_recalc_idler);
- wd->must_recalc_idler = NULL;
- }
- if (wd->queue)
- {
- eina_list_free(wd->queue);
- wd->queue = NULL;
- }
- if (wd->selected)
- {
- eina_list_free(wd->selected);
- wd->selected = NULL;
- }
- if (wd->reorder_move_animator)
- {
- ecore_animator_del(wd->reorder_move_animator);
- wd->reorder_move_animator = NULL;
- }
- wd->show_item = NULL;
+ if (wd->selected) wd->selected = eina_list_free(wd->selected);
+ _clear_cb(wd);
wd->pan_x = 0;
wd->pan_y = 0;
- wd->old_pan_y = 0;
wd->minw = 0;
wd->minh = 0;
if (!wd) return NULL;
if (!wd->items) return NULL;
Elm_Genlist_Item *it = ELM_GENLIST_ITEM_FROM_INLIST(wd->items);
- while ((it) && (it->delete_me))
+ while ((it) && (it->generation < wd->generation))
it = ELM_GENLIST_ITEM_FROM_INLIST(EINA_INLIST_GET(it)->next);
return (Elm_Object_Item *) it;
}
if (!wd) return NULL;
if (!wd->items) return NULL;
Elm_Genlist_Item *it = ELM_GENLIST_ITEM_FROM_INLIST(wd->items->last);
- while ((it) && (it->delete_me))
+ while ((it) && (it->generation < wd->generation))
it = ELM_GENLIST_ITEM_FROM_INLIST(EINA_INLIST_GET(it)->prev);
return (Elm_Object_Item *) it;
}
while (_it)
{
_it = ELM_GENLIST_ITEM_FROM_INLIST(EINA_INLIST_GET(_it)->next);
- if ((_it) && (!_it->delete_me)) break;
+ if ((_it) && (_it->generation == _it->wd->generation)) break;
}
return (Elm_Object_Item *) _it;
}
while (_it)
{
_it = ELM_GENLIST_ITEM_FROM_INLIST(EINA_INLIST_GET(_it)->prev);
- if ((_it) && (!_it->delete_me)) break;
+ if ((_it) && (_it->generation == _it->wd->generation)) break;
}
return (Elm_Object_Item *)_it;
}
Elm_Genlist_Item *_it = (Elm_Genlist_Item *) it;
Widget_Data *wd = _it->wd;
if (!wd) return;
- if ((_it->delete_me) || elm_widget_item_disabled_get(_it))
+ if ((_it->generation < wd->generation) || elm_widget_item_disabled_get(_it))
return;
selected = !!selected;
if (_it->selected == selected) return;
Elm_Genlist_Item *_it = (Elm_Genlist_Item *) it;
display_only = !!display_only;
if (_it->display_only == display_only) return;
- if (_it->delete_me) return;
+ if (_it->generation < _it->wd->generation) return;
_it->display_only = display_only;
_it->mincalcd = EINA_FALSE;
_it->updateme = EINA_TRUE;
elm_genlist_item_display_only_get(const Elm_Object_Item *it)
{
ELM_OBJ_ITEM_CHECK_OR_RETURN(it, EINA_FALSE);
- if (((Elm_Genlist_Item *) it)->delete_me) return EINA_FALSE;
- return ((Elm_Genlist_Item *) it)->display_only;
+ Elm_Genlist_Item *_it = (Elm_Genlist_Item *) it;
+ if (_it->generation < _it->wd->generation) return EINA_FALSE;
+ return _it->display_only;
}
EAPI void
{
ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
Elm_Genlist_Item *_it = (Elm_Genlist_Item *) it;
- if (_it->delete_me) return;
+ if (_it->generation < _it->wd->generation) return;
if ((_it->queued) || (!_it->mincalcd))
{
_it->wd->show_item = _it;
{
ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
Elm_Genlist_Item *_it = (Elm_Genlist_Item *) it;
- if (_it->delete_me) return;
+ if (_it->generation < _it->wd->generation) return;
_item_move_before(_it,
(Elm_Genlist_Item *) elm_genlist_first_item_get(WIDGET(_it)));
}
{
ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
Elm_Genlist_Item *_it = (Elm_Genlist_Item *) it;
- if (_it->delete_me) return;
+ if (_it->generation < _it->wd->generation) return;
_item_move_after(_it,
(Elm_Genlist_Item *) elm_genlist_last_item_get(WIDGET(_it)));
}
{
ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
Elm_Genlist_Item *_it = (Elm_Genlist_Item *) it;
- if (_it->delete_me) return;
+ if (_it->generation < _it->wd->generation) return;
if ((_it->queued) || (!_it->mincalcd))
{
_it->wd->show_item = _it;
Eina_Bool pan_size_ready = EINA_FALSE;
Elm_Genlist_Item *_it = (Elm_Genlist_Item *) it;
- if (_it->delete_me) return;
+ if (_it->generation < _it->wd->generation) return;
evas_object_geometry_get(_it->wd->pan_smart, NULL, NULL, &ow, &oh);
if (_it->block)
{
Eina_Bool pan_size_ready = EINA_FALSE;
Elm_Genlist_Item *_it = (Elm_Genlist_Item *) it;
- if (_it->delete_me) return;
+ if (_it->generation < _it->wd->generation) return;
evas_object_geometry_get(_it->wd->pan_smart, NULL, NULL, &ow, &oh);
if (_it->block)
{
Eina_Bool pan_size_ready = EINA_FALSE;
Elm_Genlist_Item *_it = (Elm_Genlist_Item *) it;
- if (_it->delete_me) return;
+ if (_it->generation < _it->wd->generation) return;
evas_object_geometry_get(_it->wd->pan_smart, NULL, NULL, &ow, &oh);
if (_it->block)
{
Eina_Bool pan_size_ready = EINA_FALSE;
Elm_Genlist_Item *_it = (Elm_Genlist_Item *) it;
- if (_it->delete_me) return;
+ if (_it->generation < _it->wd->generation) return;
evas_object_geometry_get(_it->wd->pan_smart, NULL, NULL, &ow, &oh);
if (_it->block)
{
Elm_Genlist_Item *_it = (Elm_Genlist_Item *) it;
if (!_it->block) return;
- if (_it->delete_me) return;
+ if (_it->generation < _it->wd->generation) return;
_it->mincalcd = EINA_FALSE;
_it->updateme = EINA_TRUE;
_it->block->updateme = EINA_TRUE;
Elm_Genlist_Item *_it = (Elm_Genlist_Item *) it;
if (!_it->block) return;
- if (_it->delete_me) return;
+ if (_it->generation < _it->wd->generation) return;
if ((!itf) || (itf & ELM_GENLIST_ITEM_FIELD_TEXT))
_item_text_realize(_it, VIEW(_it), &_it->texts, parts);
if (!_it->block) return;
EINA_SAFETY_ON_NULL_RETURN(itc);
- if (_it->delete_me) return;
+ if (_it->generation < _it->wd->generation) return;
_it->itc = itc;
_it->nocache = EINA_TRUE;
elm_genlist_item_update(it);
{
ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
Elm_Genlist_Item *_it = (Elm_Genlist_Item *) it;
- if (_it->delete_me) return NULL;
+ if (_it->generation < _it->wd->generation) return NULL;
return _it->itc;
}
ELM_OBJ_ITEM_CHECK_OR_RETURN(it, EINA_FALSE);
Elm_Genlist_Item *_it = (Elm_Genlist_Item *) it;
-// _it->tooltip.free_size = disable; //temp
+// _it->tooltip.free_size = disable; //upstream
if (VIEW(_it)) return elm_widget_item_tooltip_window_mode_set(_it, disable);
return EINA_TRUE;
}
if (!wd) return;
if (!mode_type) return;
- if ((_it->delete_me) ||
+ if ((_it->generation < _it->wd->generation) ||
elm_widget_item_disabled_get(_it)) return;
if (wd->edit_mode) return;
_elm_genlist_item_del_notserious(Elm_Genlist_Item *it)
{
elm_widget_item_pre_notify_del(it);
- it->delete_me = EINA_TRUE;
- //it->generation = it->wd->generation - 1; /* This means that the item is deleted */ //upstream
+ it->generation = it->wd->generation - 1; /* This means that the item is deleted */
if (it->walking) return; /* func.del is called twice when it->func.func is _elm_widget_item_del*/
if (it->selected) it->wd->selected = eina_list_remove(it->wd->selected, it);
*/
if (it->wd->calc_job) ecore_job_del(it->wd->calc_job);
it->wd->calc_job = ecore_job_add(_calc_job, it->wd);
- //free(it->item); //temp
+ //free(it->item); //upstream
- //it->item = NULL; //temp
+ //it->item = NULL; //upstream
if (it->wd->last_selected_item == (Elm_Object_Item *) it)
it->wd->last_selected_item = NULL;
}
static void
_effect_item_realize(Elm_Genlist_Item *it, Eina_Bool effect_on)
{
- if ((it->effect_item_realized) || (it->delete_me)) return;
+ if ((it->effect_item_realized) || (it->generation < it->wd->generation)) return;
char buf[1024];
if (it->mode_view)