Fix issue IME does not show when ready_set_cb is called late 85/311785/2
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:30:22 +0000 (11:30 +0900)
Change-Id: I438d19aca7d23c99225eeb104dc8862ee425cc11

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

index 8b12c61f63252edbbddf87fc469bfb525e695ac1..46813414e20e21d8fdbd7acbe82cd01db0b35ec4 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 121220ba0659c2ddf0bfc793f325ece576b091db..ce82f1c2237919abef85d2bf3082f82c156f9348 100644 (file)
@@ -2442,6 +2442,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,