Refactoring the duplicated code to hide IME 13/238713/1
authorJihoon Kim <jihoon48.kim@samsung.com>
Thu, 16 Jul 2020 11:19:56 +0000 (20:19 +0900)
committerJihoon Kim <jihoon48.kim@samsung.com>
Thu, 16 Jul 2020 11:20:07 +0000 (20:20 +0900)
Change-Id: I4c8211a5dffa0f3a733348350155bb2f42240c28
Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
src/e_mod_main.c

index ca8ab5540c6e4a1e8e4b7ae07dced83d2d153563..6b4c81a35822f5fb9630eec7f3ab00022d81b1ab 100644 (file)
@@ -160,6 +160,7 @@ const int WILL_HIDE_TIMER_INTERVAL = 1.0f;
 static void _e_text_input_cb_input_panel_show(struct wl_client *client, struct wl_resource *resource);
 static void _e_text_input_deactivate(E_Text_Input *text_input, E_Input_Method *input_method, Eina_Bool need_focus_in);
 static Eina_Bool _e_text_input_method_create_context(struct wl_client *client, E_Input_Method *input_method, E_Text_Input *text_input, Eina_Bool need_focus_out);
+static void send_hide_input_panel(E_Input_Method *input_method);
 
 E_Client *
 e_text_input_client_surface_get(void)
@@ -295,8 +296,7 @@ _input_panel_hide(struct wl_client *client, struct wl_resource *resource, Eina_B
        ((!input_method->context) || (!input_method->context->resource)))
      _context_created = _e_text_input_method_create_context(client, input_method, text_input, EINA_FALSE);
 
-   if (input_method && input_method->resource && input_method->context && input_method->context->resource)
-     wl_input_method_send_hide_input_panel(input_method->resource, input_method->context->resource);
+   send_hide_input_panel(input_method);
 
    if (_context_created)
      _e_text_input_deactivate(text_input, input_method, EINA_FALSE);
@@ -307,6 +307,15 @@ _input_panel_hide(struct wl_client *client, struct wl_resource *resource, Eina_B
    g_show_state_candidate = EINA_FALSE;
 }
 
+static void send_hide_input_panel(E_Input_Method *input_method)
+{
+   if (input_method && input_method->resource && input_method->context && input_method->context->resource)
+     {
+        LOGD("Request to hide IME");
+        wl_input_method_send_hide_input_panel(input_method->resource, input_method->context->resource);
+     }
+}
+
 static void
 _keyboard_mode_changed_cb(keynode_t *key, void* data)
 {
@@ -1000,8 +1009,7 @@ _e_text_input_method_context_cb_hide_input_panel(struct wl_client *client EINA_U
    if (g_input_method && g_input_method->resource)
      input_method = wl_resource_get_user_data(g_input_method->resource);
 
-   if (input_method && input_method->resource && input_method->context && input_method->context->resource)
-     wl_input_method_send_hide_input_panel(input_method->resource, input_method->context->resource);
+   send_hide_input_panel(input_method);
 }
 
 static void