* @since 1.10
*/
EAPI const char *edje_object_part_object_name_get(const Evas_Object *obj);
+
+/**
+ * @internal
+ * @brief These APIs are for communicating with edje_entry for not moving
+ * cursor position meanwhile.
+ *
+ * @remarks Tizen only feature (2015.07.16)
+ *
+ * @remarks Applications NEVER USE THESE APIs for private purporse.
+ *
+ * @see edje_object_part_text_thaw()
+ */
+EAPI void edje_object_part_text_freeze (Evas_Object *obj, const char *part);
+
+/**
+ * @internal
+ * @brief These APIs are for communicating with edje_entry for not moving
+ * cursor position meanwhile.
+ *
+ * @remarks Tizen only feature (2015.07.16)
+ *
+ * @remarks Applications NEVER USE THESE APIs for private purporse.
+ *
+ * @see edje_object_part_text_freeze()
+ */
+EAPI void edje_object_part_text_thaw (Evas_Object *obj, const char *part);
+
/**
* @}
*/
Eina_Bool input_panel_enable : 1;
Eina_Bool prediction_allow : 1;
Eina_Bool anchors_updated : 1;
+ // TIZEN_ONLY(20150716): Add edje_object_part_text_freeze, thaw APIs for freezing cursor movements.
+ Eina_Bool freeze : 1;
+ //
#ifdef HAVE_ECORE_IMF
Eina_Bool have_preedit : 1;
_anchors_get(en->cursor, rp->object, en);
_edje_emit(en->ed, "entry,changed", rp->part->name);
- _edje_entry_imf_cursor_info_set(en);
-
- _edje_entry_real_part_configure(en->ed, rp);
+ // TIZEN_ONLY(20150716): Add edje_object_part_text_freeze, thaw APIs for freezing cursor movements.
+ //_edje_entry_imf_cursor_info_set(en);
+ //
+ //_edje_entry_real_part_configure(en->ed, rp);
+ if (!en->freeze)
+ {
+ _edje_entry_imf_cursor_info_set(en);
+ _edje_entry_real_part_configure(en->ed, rp);
+ }
+ //
#if 0
/* Don't emit cursor changed cause it didn't. It's just init to 0. */
_edje_emit(en->ed, "cursor,changed", rp->part->name);
if (!en) return;
_curs_start(en->cursor, rp->object, en);
- _edje_entry_imf_cursor_info_set(en);
+ // TIZEN_ONLY(20150716): Add edje_object_part_text_freeze, thaw APIs for freezing cursor movements.
+ //_edje_entry_imf_cursor_info_set(en);
+ if (!en->freeze)
+ _edje_entry_imf_cursor_info_set(en);
+ //
}
void
evas_textblock_cursor_pos_set(c, pos);
_sel_update(en->ed, c, rp->object, rp->typedata.text->entry_data);
- _edje_entry_imf_cursor_info_set(en);
+ // TIZEN_ONLY(20150716): Add edje_object_part_text_freeze, thaw APIs for freezing cursor movements.
+ //_edje_entry_imf_cursor_info_set(en);
+ //_edje_emit(en->ed, "cursor,changed", rp->part->name);
+ //_edje_entry_real_part_configure(en->ed, rp);
_edje_emit(en->ed, "cursor,changed", rp->part->name);
- _edje_entry_real_part_configure(en->ed, rp);
+ if (!en->freeze)
+ {
+ _edje_entry_imf_cursor_info_set(en);
+ _edje_entry_real_part_configure(en->ed, rp);
+ }
+ //
}
int
#endif
+// TIZEN_ONLY(20150716): Add edje_object_part_text_freeze, thaw APIs for freezing cursor movements.
+void _edje_entry_freeze(Edje_Real_Part *rp)
+{
+ Entry *en = NULL;
+
+ if ((rp->type != EDJE_RP_TYPE_TEXT) ||
+ (!rp->typedata.text)) return;
+
+ en = rp->typedata.text->entry_data;
+ if (!en) return;
+
+ en->freeze = EINA_TRUE;
+}
+
+void _edje_entry_thaw(Edje_Real_Part *rp)
+{
+ Entry *en = NULL;
+
+ if ((rp->type != EDJE_RP_TYPE_TEXT) ||
+ (!rp->typedata.text)) return;
+
+ en = rp->typedata.text->entry_data;
+ if (!en) return;
+
+ en->freeze = EINA_FALSE;
+
+ _edje_entry_imf_cursor_info_set(en);
+ _edje_entry_real_part_configure(en->ed, rp);
+}
+////////////////////////////////////////////////////////////////////////////////////////////////
+
/* vim:set ts=8 sw=3 sts=3 expandtab cino=>5n-2f0^-2{2(0W1st0 :*/
rp->part->mask_flags = mask_flags;
}
+// TIZEN_ONLY(20150716): Add edje_object_part_text_freeze, thaw APIs for freezing cursor movements.
+EAPI void edje_object_part_text_freeze(Evas_Object *obj, const char *part)
+{
+ Edje *ed;
+ Edje_Real_Part *rp;
+
+ ed = _edje_fetch(obj);
+ if ((!ed) || (!part)) return;
+ rp = _edje_real_part_recursive_get(&ed, part);
+ if (!rp) return;
+ if ((rp->part->type != EDJE_PART_TYPE_TEXTBLOCK)) return;
+ if (rp->part->entry_mode <= EDJE_ENTRY_EDIT_MODE_NONE) return;
+
+ _edje_entry_freeze(rp);
+}
+
+EAPI void edje_object_part_text_thaw(Evas_Object *obj, const char *part)
+{
+ Edje *ed;
+ Edje_Real_Part *rp;
+
+ ed = _edje_fetch(obj);
+ if ((!ed) || (!part)) return;
+ rp = _edje_real_part_recursive_get(&ed, part);
+ if (!rp) return;
+ if ((rp->part->type != EDJE_PART_TYPE_TEXTBLOCK)) return;
+ if (rp->part->entry_mode <= EDJE_ENTRY_EDIT_MODE_NONE) return;
+
+ _edje_entry_thaw(rp);
+}
+/////////////////////////////////////////////////////////////////////////////////////////////////////
+
/* vim:set ts=8 sw=3 sts=3 expandtab cino=>5n-2f0^-2{2(0W1st0 :*/