return EINA_FALSE;
}
+/* TIZEN_ONLY(20161207): force update anchors when a API is called to get list of anchors
static void
_anchors_update(Evas_Textblock_Cursor *c EINA_UNUSED, Evas_Object *o, Entry *en)
+ */
+static void
+_anchors_update(Evas_Textblock_Cursor *c EINA_UNUSED, Evas_Object *o, Entry *en, Eina_Bool force_update)
+/* END */
{
Eina_List *l, *ll, *range = NULL;
Evas_Coord x, y, w, h;
Edje *ed = en->ed;
/* Better not to update anchors outside the view port. */
+ /* TIZEN_ONLY(20161207): force update anchors when a API is called to get list of anchors
if (en->anchors_updated) return;
+ */
+ if (!force_update && en->anchors_updated) return;
+ /* END */
smart = evas_object_smart_parent_get(o);
clip = evas_object_clip_get(o);
continue;
}
+ /* TIZEN_ONLY(20161207): force update anchors when a API is called to get list of anchors
if (_is_anchors_outside_viewport(y, cy, ch, vy, tvh) ||
_is_anchors_outside_viewport(x, cx, cw, vx, tvw))
+ */
+ if (!force_update &&
+ (_is_anchors_outside_viewport(y, cy, ch, vy, tvh) ||
+ _is_anchors_outside_viewport(x, cx, cw, vx, tvw)))
+ /* END */
{
if (an->sel)
{
sel = an->sel->data;
evas_object_move(sel->obj, x + cx, y + cy);
evas_object_resize(sel->obj, cw, ch);
+ /* TIZEN_ONLY(20161207): force update anchors when a API is called to get list of anchors
evas_object_show(sel->obj);
+ */
+ if (_is_anchors_outside_viewport(y, cy, ch, vy, tvh) ||
+ _is_anchors_outside_viewport(x, cx, cw, vx, tvw))
+ evas_object_show(sel->obj);
+ else
+ evas_object_hide(sel->obj);
+ /* END */
}
// for link anchors
else
r->h = r->y + r_last->y + r_last->h;
}
/* For vertically layout entry */
+ /* TIZEN_ONLY(20161207): force update anchors when a API is called to get list of anchors
if (_is_anchors_outside_viewport(y, r->y, r->h, vy, tvh))
+ */
+ if (!force_update && _is_anchors_outside_viewport(y, r->y, r->h, vy, tvh))
+ /* END */
{
EINA_LIST_FREE(range, r)
free(r);
if (en->anchors_updated)
en->anchors_updated = anchors_updated;
+ /* TIZEN_ONLY(20161207): force update anchors when a API is called to get list of anchors
_anchors_update(en->cursor, rp->object, en);
+ */
+ _anchors_update(en->cursor, rp->object, en, EINA_FALSE);
+ /* END */
en->anchors_updated = anchors_updated;
}
+/* TIZEN_ONLY(20161207): force update anchors when a API is called to get list of anchors
static void
_anchors_need_update(Edje_Real_Part *rp)
+ */
+static void
+_anchors_need_update(Edje_Real_Part *rp, Eina_Bool force_update)
+/* END */
{
Entry *en;
Eina_Bool anchors_updated;
en = rp->typedata.text->entry_data;
anchors_updated = en->anchors_updated;
en->anchors_updated = EINA_FALSE;
+ /* TIZEN_ONLY(20161207): force update anchors when a API is called to get list of anchors
_anchors_update(en->cursor, rp->object, en);
+ */
+ _anchors_update(en->cursor, rp->object, en, force_update);
+ /* END */
en->anchors_updated = anchors_updated;
}
(rp->part->entry_mode < EDJE_ENTRY_EDIT_MODE_SELECTABLE))
return;
+ /* TIZEN_ONLY(20161207): force update anchors when a API is called to get list of anchors
_anchors_need_update(rp);
+ */
+ _anchors_need_update(rp, EINA_FALSE);
+ /* END */
}
static void
if (!en) return NULL;
/* Update the anchors first in case entry is not inside the canvas
* viewport */
+ /* TIZEN_ONLY(20161207): force update anchors when a API is called to get list of anchors
_anchors_need_update(rp);
+ */
+ _anchors_need_update(rp, EINA_TRUE);
+ /* END */
EINA_LIST_FOREACH(en->anchors, l, an)
{
const char *n = an->name;
if (!en) return NULL;
/* Update the anchors first in case entry is not inside the canvas
* viewport */
+ /* TIZEN_ONLY(20161207): force update anchors when a API is called to get list of anchors
_anchors_need_update(rp);
+ */
+ _anchors_need_update(rp, EINA_TRUE);
+ /* END */
if (!en->anchorlist)
{
EINA_LIST_FOREACH(en->anchors, l, an)
(!rp->typedata.text)) return EINA_FALSE;
en = rp->typedata.text->entry_data;
if (!en) return EINA_FALSE;
+ /* Update the anchors first in case entry is not inside the canvas
+ * viewport */
+ /* TIZEN_ONLY(20161207): force update anchors when a API is called to get list of anchors */
+ _anchors_need_update(rp, EINA_TRUE);
+ /* END */
EINA_LIST_FOREACH(en->anchors, l, an)
{
const char *n = an->name;
if (!en) return NULL;
/* Update the anchors first in case entry is not inside the canvas
* viewport */
+ /* TIZEN_ONLY(20161207): force update anchors when a API is called to get list of anchors
_anchors_need_update(rp);
+ */
+ _anchors_need_update(rp, EINA_TRUE);
+ /* END */
if (!en->itemlist)
{
EINA_LIST_FOREACH(en->anchors, l, an)