From d059e1af953329e13792f18333087d84a836e99c Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Tue, 30 Sep 2014 10:47:26 +0900 Subject: [PATCH] ecore_imf/ibus: support delete-surrounding-text signal --- src/modules/ecore_imf/ibus/ibus_imcontext.c | 23 +++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/modules/ecore_imf/ibus/ibus_imcontext.c b/src/modules/ecore_imf/ibus/ibus_imcontext.c index c735ce2153..d662ac2cf5 100644 --- a/src/modules/ecore_imf/ibus/ibus_imcontext.c +++ b/src/modules/ecore_imf/ibus/ibus_imcontext.c @@ -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),