From 15814ccccbd30a28ae64ef661efbd5ca0418aaf2 Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Thu, 28 May 2015 13:13:25 +0900 Subject: [PATCH] ecore_imf/wayland: support input language mode in wayland text input @feature --- src/modules/ecore_imf/wayland/wayland_imcontext.c | 12 ++++++++++++ src/modules/ecore_imf/wayland/wayland_imcontext.h | 3 +++ src/modules/ecore_imf/wayland/wayland_module.c | 2 +- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/modules/ecore_imf/wayland/wayland_imcontext.c b/src/modules/ecore_imf/wayland/wayland_imcontext.c index 29bb554116..c47e647c41 100644 --- a/src/modules/ecore_imf/wayland/wayland_imcontext.c +++ b/src/modules/ecore_imf/wayland/wayland_imcontext.c @@ -907,6 +907,18 @@ wayland_im_context_input_hint_set(Ecore_IMF_Context *ctx, imcontext->content_hint &= ~WL_TEXT_INPUT_CONTENT_HINT_SENSITIVE_DATA; } +EAPI void +wayland_im_context_input_panel_language_set(Ecore_IMF_Context *ctx, + Ecore_IMF_Input_Panel_Lang lang) +{ + WaylandIMContext *imcontext = (WaylandIMContext *)ecore_imf_context_data_get(ctx); + + if (lang == ECORE_IMF_INPUT_PANEL_LANG_ALPHABET) + imcontext->content_hint |= WL_TEXT_INPUT_CONTENT_HINT_LATIN; + else + imcontext->content_hint &= ~WL_TEXT_INPUT_CONTENT_HINT_LATIN; +} + WaylandIMContext *wayland_im_context_new (struct wl_text_input_manager *text_input_manager) { WaylandIMContext *context = calloc(1, sizeof(WaylandIMContext)); diff --git a/src/modules/ecore_imf/wayland/wayland_imcontext.h b/src/modules/ecore_imf/wayland/wayland_imcontext.h index 3b004eec77..a105c78a96 100644 --- a/src/modules/ecore_imf/wayland/wayland_imcontext.h +++ b/src/modules/ecore_imf/wayland/wayland_imcontext.h @@ -72,6 +72,9 @@ EAPI void wayland_im_context_input_mode_set(Ecore_IMF_Context *ctx, EAPI void wayland_im_context_input_hint_set(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Hints input_hints); +EAPI void wayland_im_context_input_panel_language_set(Ecore_IMF_Context *ctx, + Ecore_IMF_Input_Panel_Lang lang); + WaylandIMContext *wayland_im_context_new (struct wl_text_input_manager *text_input_manager); extern int _ecore_imf_wayland_log_dom; diff --git a/src/modules/ecore_imf/wayland/wayland_module.c b/src/modules/ecore_imf/wayland/wayland_module.c index c65ff8a09b..d5dfbc277e 100644 --- a/src/modules/ecore_imf/wayland/wayland_module.c +++ b/src/modules/ecore_imf/wayland/wayland_module.c @@ -66,7 +66,7 @@ static Ecore_IMF_Context_Class wayland_imf_class = NULL, /* control panel hide */ wayland_im_context_input_panel_layout_set, /* input_panel_layout_set */ NULL, /* input_panel_layout_get, */ - NULL, /* input_panel_language_set, */ + wayland_im_context_input_panel_language_set,/* input_panel_language_set, */ NULL, /* input_panel_language_get, */ wayland_im_context_cursor_location_set, /* cursor_location_set */ NULL, /* input_panel_imdata_set */