ecore_imf/wayland: support input hint in wayland text input
authorJihoon Kim <jihoon48.kim@samsung.com>
Thu, 28 May 2015 02:00:20 +0000 (11:00 +0900)
committerJihoon Kim <jihoon48.kim@samsung.com>
Thu, 28 May 2015 02:35:05 +0000 (11:35 +0900)
@feature

src/modules/ecore_imf/wayland/wayland_imcontext.c
src/modules/ecore_imf/wayland/wayland_imcontext.h
src/modules/ecore_imf/wayland/wayland_module.c

index e583d31..29bb554 100644 (file)
@@ -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));
index d9b8d18..3b004ee 100644 (file)
@@ -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;
index 505183f..c65ff8a 100644 (file)
@@ -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 */
 };