Fix issue IME does not show when ready_set_cb is called late 84/311784/1
authorInhong Han <inhong1.han@samsung.com>
Tue, 28 May 2024 02:03:48 +0000 (11:03 +0900)
committerInhong Han <inhong1.han@samsung.com>
Tue, 28 May 2024 02:03:48 +0000 (11:03 +0900)
Change-Id: I438d19aca7d23c99225eeb104dc8862ee425cc11

src/e_mod_input_panel.c
src/e_mod_main.c
src/e_mod_main.h

index 50621301c0e4f8327c3145df1d9ff1b7dc007ca9..bc8692ebbaacd0e17a731181dfc6fd604d891304 100644 (file)
@@ -938,7 +938,7 @@ _e_input_panel_client_cb_visibility_change(void *data, int type, void *event)
    if (ips->resizing)
      goto end;
 
-   if (ec->visibility.obscured == E_VISIBILITY_FULLY_OBSCURED)
+   if (ec->visibility.obscured == E_VISIBILITY_FULLY_OBSCURED && !e_input_panel_show_request_flag_get())
      e_input_panel_visibility_change(EINA_FALSE);
 
 end:
index 7770237681e94b2768073b18639ce580e0fcc894..f05179b2e8aee44443446def16ece6075db32a98 100644 (file)
@@ -2433,6 +2433,15 @@ e_text_input_activation_state_get()
    return g_text_input ? EINA_TRUE : EINA_FALSE;
 }
 
+Eina_Bool
+e_input_panel_show_request_flag_get()
+{
+   if (!g_text_input)
+     return EINA_FALSE;
+
+   return g_text_input->input_panel_show_requested;
+}
+
 E_API void *
 e_modapi_init(E_Module *m)
 {
index 87f71cec93271cb6a145ad5ffc118ab003cd288c..869262b13e0cd656954c9f059ab43e5700e02f04 100644 (file)
@@ -32,6 +32,7 @@ Eina_Bool   e_text_input_activation_state_get(void);
 void        e_input_panel_pending_position_reset(void);
 void        e_input_panel_floating_position_align_set(int x, int y, int align);
 void        e_input_panel_floating_panel_move_resize(int x, int y, int w, int h);
+Eina_Bool   e_input_panel_show_request_flag_get(void);
 
 typedef enum {
    TIZEN_PROFILE_UNKNOWN = 0,