}
void
+isf_wsc_context_cursor_position_set (WSCContextISF *ctx, int cursor_pos)
+{
+ SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
+
+ WSCContextISF *context_scim = ctx;
+
+ if (context_scim && context_scim->impl && context_scim == _focused_ic) {
+ if (context_scim->impl->cursor_pos != cursor_pos) {
+ LOGD ("ctx : %p, cursor pos : %d\n", ctx, cursor_pos);
+ context_scim->impl->cursor_pos = cursor_pos;
+
+ caps_mode_check (ctx, EINA_FALSE, EINA_TRUE);
+
+ if (context_scim->impl->preedit_updating)
+ return;
+
+ if (context_scim->impl->si) {
+ _panel_client.prepare (context_scim->id);
+ context_scim->impl->si->update_cursor_position (cursor_pos);
+ panel_req_update_cursor_position (context_scim, cursor_pos);
+ _panel_client.send ();
+ }
+ }
+ }
+}
+
+void
isf_wsc_context_preedit_string_get (WSCContextISF *ctx, char** str, int *cursor_pos)
{
SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
uint32_t content_purpose;
uint32_t surrounding_cursor;
uint32_t return_key_type;
- int cursor_pos;
Eina_Bool context_changed;
Eina_Bool hw_kbd;
void isf_wsc_context_focus_in (WSCContextISF *ctx);
void isf_wsc_context_focus_out (WSCContextISF *ctx);
void isf_wsc_context_reset (WSCContextISF *ctx);
+void isf_wsc_context_cursor_position_set (WSCContextISF *ctx, int cursor_pos);
void isf_wsc_context_preedit_string_get (WSCContextISF *ctx, char** str, int *cursor_pos);
void isf_wsc_context_prediction_allow_set (WSCContextISF* ctx, Eina_Bool prediction);
Eina_Bool isf_wsc_context_prediction_allow_get (WSCContextISF* ctx);
wsc->surrounding_text = strdup (text ? text : "");
wsc->surrounding_cursor = cursor;
- if (wsc->cursor_pos != (int)cursor) {
- wsc->cursor_pos = cursor;
-
- if (wsc->wsc_ctx)
- caps_mode_check (wsc->wsc_ctx, EINA_FALSE, EINA_TRUE);
- }
+ isf_wsc_context_cursor_position_set(wsc->wsc_ctx, cursor);
LOGD ("text : '%s', cursor : %d", text, cursor);
}
wsc->preedit_str = strdup ("");
wsc->content_hint = WL_TEXT_INPUT_CONTENT_HINT_NONE;
wsc->content_purpose = WL_TEXT_INPUT_CONTENT_PURPOSE_NORMAL;
- wsc->cursor_pos = -1;
if (wsc->language) {
free (wsc->language);