ecore_imf/ibus: support delete-surrounding-text signal

This commit is contained in:
Jihoon Kim 2014-09-30 10:47:26 +09:00
parent dd94425ecc
commit d059e1af95
1 changed files with 23 additions and 0 deletions

View File

@ -681,6 +681,25 @@ sort_cb(const void *d1, const void *d2)
return 1;
}
static void
_ecore_imf_context_ibus_delete_surrounding_text_cb(IBusInputContext *ibuscontext EINA_UNUSED,
gint offset_from_cursor,
guint nchars,
IBusIMContext *ibusimcontext)
{
EINA_SAFETY_ON_NULL_RETURN(ibusimcontext);
if (_focus_im_context != ibusimcontext->ctx)
return;
Ecore_IMF_Event_Delete_Surrounding ev;
ev.ctx = _focus_im_context;
ev.n_chars = nchars;
ev.offset = offset_from_cursor;
ecore_imf_context_delete_surrounding_event_add(_focus_im_context, offset_from_cursor, nchars);
ecore_imf_context_event_callback_call(_focus_im_context, ECORE_IMF_CALLBACK_DELETE_SURROUNDING, &ev);
}
static void
_ecore_imf_context_ibus_update_preedit_text_cb(IBusInputContext *ibuscontext EINA_UNUSED,
IBusText *text,
@ -931,6 +950,10 @@ _ecore_imf_context_ibus_create(IBusIMContext *ibusimcontext)
"forward-key-event",
G_CALLBACK (_ecore_imf_context_ibus_forward_key_event_cb),
ibusimcontext);
g_signal_connect(ibusimcontext->ibuscontext,
"delete-surrounding-text",
G_CALLBACK (_ecore_imf_context_ibus_delete_surrounding_text_cb),
ibusimcontext);
g_signal_connect(ibusimcontext->ibuscontext,
"update-preedit-text",
G_CALLBACK (_ecore_imf_context_ibus_update_preedit_text_cb),