From edbb015fef62a5e27b060932a9758d7c528a1425 Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Thu, 28 May 2015 10:05:11 +0900 Subject: [PATCH] ecore_imf/wayland: support password mode in wayland text input @feature Change-Id: Ib90217c829d063882698d691d56af1d0ba8f6954 --- 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 | 16 +++++++++------- 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/modules/ecore_imf/wayland/wayland_imcontext.c b/src/modules/ecore_imf/wayland/wayland_imcontext.c index 6d5a17d..bd2fd33 100644 --- a/src/modules/ecore_imf/wayland/wayland_imcontext.c +++ b/src/modules/ecore_imf/wayland/wayland_imcontext.c @@ -878,6 +878,18 @@ wayland_im_context_input_panel_layout_set(Ecore_IMF_Context *ctx, Ecore_IMF_Inpu } } +EAPI void +wayland_im_context_input_mode_set(Ecore_IMF_Context *ctx, + Ecore_IMF_Input_Mode input_mode) +{ + WaylandIMContext *imcontext = (WaylandIMContext *)ecore_imf_context_data_get(ctx); + + if (input_mode & ECORE_IMF_INPUT_MODE_INVISIBLE) + imcontext->content_hint |= WL_TEXT_INPUT_CONTENT_HINT_PASSWORD; + else + imcontext->content_hint &= ~WL_TEXT_INPUT_CONTENT_HINT_PASSWORD; +} + 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 9ec9f30..d9b8d18 100644 --- a/src/modules/ecore_imf/wayland/wayland_imcontext.h +++ b/src/modules/ecore_imf/wayland/wayland_imcontext.h @@ -66,6 +66,9 @@ EAPI void wayland_im_context_autocapital_type_set(Ecore_IMF_Context *ctx, EAPI void wayland_im_context_input_panel_layout_set(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Layout layout); +EAPI void wayland_im_context_input_mode_set(Ecore_IMF_Context *ctx, + Ecore_IMF_Input_Mode input_mode); + 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 eb31e90..0b7e737 100644 --- a/src/modules/ecore_imf/wayland/wayland_module.c +++ b/src/modules/ecore_imf/wayland/wayland_module.c @@ -57,7 +57,7 @@ static Ecore_IMF_Context_Class wayland_imf_class = wayland_im_context_reset, /* reset */ wayland_im_context_cursor_position_set, /* cursor_position_set */ wayland_im_context_use_preedit_set, /* use_preedit_set */ - NULL, /* input_mode_set */ + wayland_im_context_input_mode_set, /* input_mode_set */ wayland_im_context_filter_event, /* filter_event */ wayland_im_context_preedit_string_with_attributes_get, /* preedit_string_with_attribute_get */ NULL, /* prediction_allow_set */ @@ -74,12 +74,14 @@ static Ecore_IMF_Context_Class wayland_imf_class = NULL, /* input_panel_return_key_type_set */ NULL, /* input_panel_return_key_disabled_set */ NULL, /* input_panel_caps_lock_mode_set */ - NULL, - NULL, - NULL, - NULL, - NULL, - NULL + NULL, /* input_panel_geometry_get */ + NULL, /* input_panel_state_get */ + NULL, /* input_panel_event_callback_add */ + NULL, /* input_panel_event_callback_del */ + NULL, /* input_panel_language_locale_get */ + NULL, /* candidate_window_geometry_get */ + NULL, /* input_hint_set */ + NULL /* bidi_direction_set */ }; static struct wl_text_input_manager *text_input_manager = NULL; -- 2.7.4