diff --git a/src/modules/ecore_imf/wayland/wayland_imcontext.c b/src/modules/ecore_imf/wayland/wayland_imcontext.c index e583d3132e..29bb554116 100644 --- a/src/modules/ecore_imf/wayland/wayland_imcontext.c +++ b/src/modules/ecore_imf/wayland/wayland_imcontext.c @@ -890,6 +890,23 @@ wayland_im_context_input_mode_set(Ecore_IMF_Context *ctx, imcontext->content_hint &= ~WL_TEXT_INPUT_CONTENT_HINT_PASSWORD; } +EAPI void +wayland_im_context_input_hint_set(Ecore_IMF_Context *ctx, + Ecore_IMF_Input_Hints input_hints) +{ + WaylandIMContext *imcontext = (WaylandIMContext *)ecore_imf_context_data_get(ctx); + + if (input_hints & ECORE_IMF_INPUT_HINT_AUTO_COMPLETE) + imcontext->content_hint |= WL_TEXT_INPUT_CONTENT_HINT_AUTO_COMPLETION; + else + imcontext->content_hint &= ~WL_TEXT_INPUT_CONTENT_HINT_AUTO_COMPLETION; + + if (input_hints & ECORE_IMF_INPUT_HINT_SENSITIVE_DATA) + imcontext->content_hint |= WL_TEXT_INPUT_CONTENT_HINT_SENSITIVE_DATA; + else + imcontext->content_hint &= ~WL_TEXT_INPUT_CONTENT_HINT_SENSITIVE_DATA; +} + 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 d9b8d18282..3b004eec77 100644 --- a/src/modules/ecore_imf/wayland/wayland_imcontext.h +++ b/src/modules/ecore_imf/wayland/wayland_imcontext.h @@ -69,6 +69,9 @@ EAPI void wayland_im_context_input_panel_layout_set(Ecore_IMF_Context *ctx, EAPI void wayland_im_context_input_mode_set(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Mode input_mode); +EAPI void wayland_im_context_input_hint_set(Ecore_IMF_Context *ctx, + Ecore_IMF_Input_Hints input_hints); + 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 505183fcfd..c65ff8a09b 100644 --- a/src/modules/ecore_imf/wayland/wayland_module.c +++ b/src/modules/ecore_imf/wayland/wayland_module.c @@ -80,7 +80,7 @@ static Ecore_IMF_Context_Class wayland_imf_class = NULL, /* input_panel_event_callback_del */ NULL, /* input_panel_language_locale_get */ NULL, /* candidate_window_geometry_get */ - NULL, /* input_hint_set */ + wayland_im_context_input_hint_set, /* input_hint_set */ NULL /* bidi_direction_set */ };