From f8eaee60d1b8cf9d655b7f649d659bf15eb65257 Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Tue, 22 Sep 2015 20:34:38 +0900 Subject: [PATCH] wl_text: support to set input panel data Change-Id: I8400b5ae714f66649b13be1c3f29e0ecbd7ff53b --- ism/extras/efl_wsc/isf_wsc_control_ui.cpp | 8 ++++++++ ism/extras/efl_wsc/isf_wsc_control_ui.h | 1 + ism/extras/efl_wsc/isf_wsc_efl.cpp | 13 ++++++++++++- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/ism/extras/efl_wsc/isf_wsc_control_ui.cpp b/ism/extras/efl_wsc/isf_wsc_control_ui.cpp index 975f6d7..32a032b 100644 --- a/ism/extras/efl_wsc/isf_wsc_control_ui.cpp +++ b/ism/extras/efl_wsc/isf_wsc_control_ui.cpp @@ -272,3 +272,11 @@ void isf_wsc_context_input_panel_return_key_disabled_set (WSCContextISF *ctx, Ei LOGD ("ctx : %p, disabled : %d\n", ctx, disabled); _isf_wsc_context_input_panel_return_key_disabled_set (_get_context_id (ctx), disabled); } + +void isf_wsc_context_input_panel_imdata_set (WSCContextISF *ctx, const void *imdata, int len) +{ + if (!IfInitContext) + _isf_wsc_context_init (); + + _isf_wsc_context_input_panel_imdata_set (_get_context_id (ctx), imdata, len); +} diff --git a/ism/extras/efl_wsc/isf_wsc_control_ui.h b/ism/extras/efl_wsc/isf_wsc_control_ui.h index ba02ff5..8720ee6 100644 --- a/ism/extras/efl_wsc/isf_wsc_control_ui.h +++ b/ism/extras/efl_wsc/isf_wsc_control_ui.h @@ -51,6 +51,7 @@ extern "C" void isf_wsc_context_input_panel_caps_lock_mode_set (WSCContextISF *ctx, Eina_Bool mode); void isf_wsc_context_set_keyboard_mode (WSCContextISF *ctx, scim::TOOLBAR_MODE_T mode); void isf_wsc_context_input_panel_return_key_disabled_set (WSCContextISF *ctx, Eina_Bool disabled); + void isf_wsc_context_input_panel_imdata_set (WSCContextISF *ctx, const void *imdata, int len); #ifdef __cplusplus } diff --git a/ism/extras/efl_wsc/isf_wsc_efl.cpp b/ism/extras/efl_wsc/isf_wsc_efl.cpp index a0db72e..5a544bd 100644 --- a/ism/extras/efl_wsc/isf_wsc_efl.cpp +++ b/ism/extras/efl_wsc/isf_wsc_efl.cpp @@ -228,6 +228,16 @@ _wsc_im_ctx_return_key_disabled(void *data, struct wl_input_method_context *im_c } } +static void +_wsc_im_ctx_input_panel_data(void *data, struct wl_input_method_context *im_ctx, const char *input_panel_data, uint32_t input_panel_data_length) +{ + struct weescim *wsc = (weescim*)data; + LOGD ("im_context = %p input panel data = %s len = %d", im_ctx, input_panel_data, input_panel_data_length); + if (!wsc || !wsc->wsc_ctx) return; + + isf_wsc_context_input_panel_imdata_set (wsc->wsc_ctx, (void *)input_panel_data, input_panel_data_length); +} + static const struct wl_input_method_context_listener wsc_im_context_listener = { _wsc_im_ctx_surrounding_text, _wsc_im_ctx_reset, @@ -236,7 +246,8 @@ static const struct wl_input_method_context_listener wsc_im_context_listener = { _wsc_im_ctx_commit_state, _wsc_im_ctx_preferred_language, _wsc_im_ctx_return_key_type, - _wsc_im_ctx_return_key_disabled + _wsc_im_ctx_return_key_disabled, + _wsc_im_ctx_input_panel_data }; static void -- 2.7.4