// TIZEN_ONLY(20150716): Add edje_object_part_text_freeze, thaw APIs for freezing cursor movements.
Eina_Bool freeze : 1;
//
+ /* TIZEN_ONLY(2161031): Add edje_object_part_text_select_disable_set API */
+ Eina_Bool select_disable;
+ /* END */
#ifdef HAVE_ECORE_IMF
Eina_Bool have_preedit : 1;
if ((rp->type != EDJE_RP_TYPE_TEXT) ||
(!rp->typedata.text)) return;
en = rp->typedata.text->entry_data;
+ /* TIZEN_ONLY(20161031): Add edje_object_part_text_select_disable_set API
if ((rp->part->select_mode == EDJE_ENTRY_SELECTION_MODE_EXPLICIT) &&
(en->select_allow))
+ */
+ if ((rp->part->select_mode == EDJE_ENTRY_SELECTION_MODE_EXPLICIT) &&
+ (!en->select_disable && en->select_allow))
+ /* END */
return;
ignored = rp->ignore_flags & ev->event_flags;
if (!n) n = "";
len = 200 + strlen(n);
buf = alloca(len);
+ /* TIZEN_ONLY(20161031): Add edje_object_part_text_select_disable_set API
if ((rp->part->select_mode != EDJE_ENTRY_SELECTION_MODE_EXPLICIT) ||
(!en->select_allow))
+ */
+ if ((rp->part->select_mode != EDJE_ENTRY_SELECTION_MODE_EXPLICIT) ||
+ (en->select_disable || !en->select_allow))
+ /* END */
{
if ((!ev->event_flags) || (!ignored))
{
if ((rp->type != EDJE_RP_TYPE_TEXT) ||
(!rp->typedata.text)) return;
en = rp->typedata.text->entry_data;
+ /* TIZEN_ONLY(20161031): Add edje_object_part_text_select_disable_set API
if ((rp->part->select_mode == EDJE_ENTRY_SELECTION_MODE_EXPLICIT) &&
(en->select_allow))
+ */
+ if ((rp->part->select_mode == EDJE_ENTRY_SELECTION_MODE_EXPLICIT) &&
+ (!en->select_disable && en->select_allow))
+ /* END */
return;
ignored = rp->ignore_flags & ev->event_flags;
{
_compose_seq_reset(en);
// dead keys here. Escape for now (should emit these)
+ /* TIZEN_ONLY(20161118): selection clear when escape key down
_edje_emit(ed, "entry,key,escape", rp->part->name);
+ */
+ if (en->have_selection)
+ _sel_clear(ed, en->cursor, rp->object, en);
+ else
+ _edje_emit(ed, "entry,key,escape", rp->part->name);
+ /* END */
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
}
else if (!strcmp(ev->key, "Up") ||
if (en->have_selection &&
(evas_textblock_cursor_pos_get(en->sel_start) != evas_textblock_cursor_pos_get(en->sel_end)))
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
+ /* TIZEN_ONLY(20161031): Add edje_object_part_text_select_disable_set API
if (en->select_allow)
+ */
+ if (!en->select_disable)
+ /* END */
{
if (shift)
{
}
if (_curs_up(en->cursor, rp->object, en))
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
+ /* TIZEN_ONLY(20161031): Add edje_object_part_text_select_disable_set API
if (en->select_allow)
+ */
+ if (!en->select_disable)
+ /* END */
{
if (shift) _sel_extend(ed, en->cursor, rp->object, en);
else _sel_clear(ed, en->cursor, rp->object, en);
if (en->have_selection &&
(evas_textblock_cursor_pos_get(en->sel_start) != evas_textblock_cursor_pos_get(en->sel_end)))
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
+ /* TIZEN_ONLY(20161031): Add edje_object_part_text_select_disable_set API
if (en->select_allow)
+ */
+ if (!en->select_disable)
+ /* END */
{
if (shift)
{
}
if (_curs_down(en->cursor, rp->object, en))
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
+ /* TIZEN_ONLY(20161031): Add edje_object_part_text_select_disable_set API
if (en->select_allow)
+ */
+ if (!en->select_disable)
+ /* END */
{
if (shift) _sel_extend(ed, en->cursor, rp->object, en);
else _sel_clear(ed, en->cursor, rp->object, en);
if (en->have_selection &&
(evas_textblock_cursor_pos_get(en->sel_start) != evas_textblock_cursor_pos_get(en->sel_end)))
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
+ /* TIZEN_ONLY(20161031): Add edje_object_part_text_select_disable_set API
if (en->select_allow)
+ */
+ if (!en->select_disable)
+ /* END */
{
if (shift)
{
/* If control is pressed, go to the start of the word */
if (control) evas_textblock_cursor_word_start(en->cursor);
#endif
+ /* TIZEN_ONLY(20161031): Add edje_object_part_text_select_disable_set API
if (en->select_allow)
+ */
+ if (!en->select_disable)
+ /* END */
{
if (shift) _sel_extend(ed, en->cursor, rp->object, en);
else _sel_clear(ed, en->cursor, rp->object, en);
if (en->have_selection &&
(evas_textblock_cursor_pos_get(en->sel_start) != evas_textblock_cursor_pos_get(en->sel_end)))
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
+ /* TIZEN_ONLY(20161031): Add edje_object_part_text_select_disable_set API
if (en->select_allow)
+ */
+ if (!en->select_disable)
+ /* END */
{
if (shift)
{
//if (evas_textblock_cursor_char_next(en->cursor))
if (evas_textblock_cursor_cluster_next(en->cursor))
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
+ /* TIZEN_ONLY(20161031): Add edje_object_part_text_select_disable_set API
if (en->select_allow)
+ */
+ if (!en->select_disable)
+ /* END */
{
if (shift) _sel_extend(ed, en->cursor, rp->object, en);
else _sel_clear(ed, en->cursor, rp->object, en);
((!strcmp(ev->key, "KP_Home")) && !ev->string)))
{
_compose_seq_reset(en);
+ /* TIZEN_ONLY(20161031): Add edje_object_part_text_select_disable_set API
if (en->select_allow)
+ */
+ if (!en->select_disable)
+ /* END */
{
if (shift) _sel_start(en->cursor, rp->object, en);
else _sel_clear(ed, en->cursor, rp->object, en);
_curs_start(en->cursor, rp->object, en);
else
_curs_lin_start(en->cursor, rp->object, en);
+ /* TIZEN_ONLY(20161031): Add edje_object_part_text_select_disable_set API
if (en->select_allow)
+ */
+ if (!en->select_disable)
+ /* END */
{
if (shift) _sel_extend(ed, en->cursor, rp->object, en);
}
((!strcmp(ev->key, "KP_End")) && !ev->string)))
{
_compose_seq_reset(en);
+ /* TIZEN_ONLY(20161031): Add edje_object_part_text_select_disable_set API
if (en->select_allow)
+ */
+ if (!en->select_disable)
+ /* END */
{
if (shift) _sel_start(en->cursor, rp->object, en);
else _sel_clear(ed, en->cursor, rp->object, en);
_curs_end(en->cursor, rp->object, en);
else
_curs_lin_end(en->cursor, rp->object, en);
+ /* TIZEN_ONLY(20161031): Add edje_object_part_text_select_disable_set API
if (en->select_allow)
+ */
+ if (!en->select_disable)
+ /* END */
{
if (shift) _sel_extend(ed, en->cursor, rp->object, en);
}
(!strcmp(ev->key, "KP_Prior") && !ev->string))
{
_compose_seq_reset(en);
+ /* TIZEN_ONLY(20161031): Add edje_object_part_text_select_disable_set API
if (en->select_allow)
+ */
+ if (!en->select_disable)
+ /* END */
{
if (shift) _sel_start(en->cursor, rp->object, en);
else _sel_clear(ed, en->cursor, rp->object, en);
evas_textblock_cursor_line_set(en->cursor, 0);
_curs_lin_start(en->cursor, rp->object, en);
}
+ /* TIZEN_ONLY(20161031): Add edje_object_part_text_select_disable_set API
if (en->select_allow)
+ */
+ if (!en->select_disable)
+ /* END */
{
if (shift) _sel_extend(ed, en->cursor, rp->object, en);
else _sel_clear(ed, en->cursor, rp->object, en);
(!strcmp(ev->key, "KP_Next") && !ev->string))
{
_compose_seq_reset(en);
+ /* TIZEN_ONLY(20161031): Add edje_object_part_text_select_disable_set API
if (en->select_allow)
+ */
+ if (!en->select_disable)
+ /* END */
{
if (shift) _sel_start(en->cursor, rp->object, en);
else _sel_clear(ed, en->cursor, rp->object, en);
evas_textblock_cursor_line_set(en->cursor, last);
_curs_lin_end(en->cursor, rp->object, en);
}
+ /* TIZEN_ONLY(20161031): Add edje_object_part_text_select_disable_set API
if (en->select_allow)
+ */
+ if (!en->select_disable)
+ /* END */
{
if (shift) _sel_extend(ed, en->cursor, rp->object, en);
else _sel_clear(ed, en->cursor, rp->object, en);
en->select_mod_start = EINA_FALSE;
en->select_mod_end = EINA_FALSE;
+ /* TIZEN_ONLY(20161031): Add edje_object_part_text_select_disable_set API
if (en->select_allow && ev->button != 2) dosel = EINA_TRUE;
+ */
+ if (!en->select_disable && en->select_allow && ev->button != 2) dosel = EINA_TRUE;
+ /* END */
if (dosel)
{
if (ev->flags & EVAS_BUTTON_TRIPLE_CLICK)
}
}
}
+ /* TIZEN_ONLY(20161031): Add edje_object_part_text_select_disable_set API
if (en->select_allow)
+ */
+ if (!en->select_disable && en->select_allow)
+ /* END */
{
if (rp->part->select_mode == EDJE_ENTRY_SELECTION_MODE_EXPLICIT)
{
_curs_lin_end(en->cursor, rp->object, en);
}
}
+ /* TIZEN_ONLY(20161031): Add edje_object_part_text_select_disable_set API
if (en->select_allow)
+ */
+ if (!en->select_disable && en->select_allow)
+ /* END */
{
if (rp->part->select_mode == EDJE_ENTRY_SELECTION_MODE_EXPLICIT)
{
txt = (Edje_Part_Description_Text *)rp->chosen_description;
en->select_allow = EINA_FALSE;
+ /* TIZEN_ONLY(20161031): Add edje_object_part_text_select_disable_set API */
+ en->select_disable = EINA_TRUE;
+ /* END */
+
if (txt && edje_string_get(&txt->text.repch))
evas_object_textblock_replace_char_set(rp->object, edje_string_get(&txt->text.repch));
else
return en->select_allow;
}
+/* TIZEN_ONLY(20161031): Add edje_object_part_text_select_disable_set API */
+void
+_edje_entry_select_disable_set(Edje_Real_Part *rp, Eina_Bool disable)
+{
+ Entry *en;
+
+ if ((rp->type != EDJE_RP_TYPE_TEXT) ||
+ (!rp->typedata.text)) return;
+ en = rp->typedata.text->entry_data;
+ if (!en) return;
+
+ en->select_disable = disable;
+}
+
+Eina_Bool
+_edje_entry_select_disable_get(const Edje_Real_Part *rp)
+{
+ Entry *en;
+
+ if ((rp->type != EDJE_RP_TYPE_TEXT) ||
+ (!rp->typedata.text)) return EINA_FALSE;
+ en = rp->typedata.text->entry_data;
+ if (!en) return EINA_FALSE;
+ return en->select_disable;
+}
+/* END */
+
void
_edje_entry_select_abort(Edje_Real_Part *rp)
{