static const char SIGNAL_FOCUS_BG_SHOW[] = "elm,state,focus_bg,show";
static const char SIGNAL_FOCUS_BG_HIDE[] = "elm,state,focus_bg,hide";
//
+// TIZEN_ONLY(20170801) : for fix flickering issue at item update(circle model)
+static const char SIGNAL_ITEM_HIGHLIGHTED_DIRECT[] = "elm,state,highlighted,direct";
+//
static Eina_Bool _key_action_move(Evas_Object *obj, const char *params);
static Eina_Bool _key_action_select(Evas_Object *obj, const char *params);
if (y) *y = psd->wsd->pan_y;
}
+// TIZEN_ONLY(20170801) - for fix flickering issue at item update(circle model)
+static void
+_send_item_highlighted_signal(Elm_Gen_Item *it, Eina_Bool direct)
+{
+ if (!it || !VIEW(it)) return;
+ if (GL_IT(it)->wsd->comp_y) return;
+
+ if (direct)
+ {
+ const char *highlight_direct = edje_object_data_get(VIEW(it), "highlight_direct");
+
+ if (highlight_direct && !strcmp(highlight_direct, "on"))
+ {
+ edje_object_signal_emit(VIEW(it), SIGNAL_ITEM_HIGHLIGHTED_DIRECT, "elm");
+ }
+ else
+ {
+ edje_object_signal_emit(VIEW(it), SIGNAL_ITEM_HIGHLIGHTED, "elm");
+ }
+ }
+ else
+ {
+ edje_object_signal_emit(VIEW(it), SIGNAL_ITEM_HIGHLIGHTED, "elm");
+ }
+}
+
// TIZEN_ONLY(20150705): genlist item align feature
static Elm_Gen_Item *
_elm_genlist_pos_adjust_xy_item_get(const Evas_Object *obj,
}
//TIZEN_ONLY(20170526) - focus bg size should not exceed viewport size
- evas_object_geometry_get(sd->pan_obj, NULL, NULL, NULL, &vh);
+ evas_object_geometry_get(GL_IT(it)->wsd->pan_obj, NULL, NULL, NULL, &vh);
if (rectangle_h > vh)
rectangle_h = vh;
//
if ((sd->adjusted_item == target) &&
((sd->adjusted_item != sd->aligned_item) || (sd->unhighlighted)))
{
- edje_object_signal_emit(VIEW(sd->adjusted_item), SIGNAL_ITEM_HIGHLIGHTED, "elm");
-
+ // TIZEN_ONLY(20170801) - for fix flickering issue at item update(circle model)
+ _send_item_highlighted_signal(sd->adjusted_item, EINA_FALSE);
+ //
if (sd->aligned_item && sd->adjusted_item != sd->aligned_item)
edje_object_signal_emit(VIEW(sd->aligned_item), SIGNAL_ITEM_UNHIGHLIGHTED, "elm");
sd->aligned_item = sd->adjusted_item;
_decorate_item_realize(it);
}
+ // TIZEN_ONLY(20170525) - highlight is realized by panel operation
+ if (sd->aligned_item == it)
+ {
+ _send_item_highlighted_signal(it, EINA_TRUE);
+ }
+ //
it->realized = EINA_TRUE;
if (!calc)
{
if (aligned_item)
{
- edje_object_signal_emit(VIEW(aligned_item), SIGNAL_ITEM_HIGHLIGHTED, "elm");
+ // TIZEN_ONLY(20170801) - for fix flickering issue at item update(circle model)
+ _send_item_highlighted_signal(aligned_item, EINA_FALSE);
+ //
_focus_bg_show(aligned_item);
edje_object_message_signal_process(VIEW(sd->aligned_item));
if (it->selected)
efl_event_callback_legacy_call(WIDGET(it), ELM_GENLIST_EVENT_HIGHLIGHTED, EO_OBJ(it));
+ // TIZEN_ONLY(20170801) - for fix flickering issue at item update(circle model)
if (GL_IT(it)->wsd->aligned_item == it)
- edje_object_signal_emit(VIEW(it), SIGNAL_ITEM_HIGHLIGHTED, "elm");
+ _send_item_highlighted_signal(it, EINA_TRUE);
+ //
edje_object_message_signal_process(VIEW(it));
}
sd->no_cache = EINA_FALSE;
_item_realize(it, EINA_FALSE);
+ // TIZEN_ONLY(20170801) - for fix flickering issue at item update(circle model)
if (sd->aligned_item == it)
- edje_object_signal_emit(VIEW(it), SIGNAL_ITEM_HIGHLIGHTED, "elm");
+ _send_item_highlighted_signal(it, EINA_TRUE);
+ //
GL_IT(it)->calc_done = EINA_FALSE;
GL_IT(it)->block->calc_done = EINA_FALSE;