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

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

index 82dc505353e585d2cecfdaea828bd202bcafa916..119addbb608db6181aa635af25dd72b054af57ae 100644 (file)
@@ -811,7 +811,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 8fd02c8306fa7f0518dd27c45060b5c14b0a6ea4..268470562d17999089b381f3aab7009f8b3e1676 100644 (file)
@@ -2259,6 +2259,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 2bc59c3362f1a6021912b52bcaca345869212c9f..e038fe8cf14f1971e53912752df4a77b9df7c31d 100644 (file)
@@ -29,6 +29,7 @@ void        e_input_panel_floating_panel_set(Eina_Bool state);
 void        e_input_panel_floating_drag_enabled(Eina_Bool enabled);
 Eina_Bool   e_input_panel_floating_mode_get(void);
 Eina_Bool   e_text_input_activation_state_get(void);
+Eina_Bool   e_input_panel_show_request_flag_get(void);
 
 typedef enum {
    TIZEN_PROFILE_UNKNOWN = 0,