From: InHong Han Date: Tue, 22 Feb 2022 08:57:36 +0000 (+0900) Subject: Modified to prevent passing invalid IME geometry to the app X-Git-Tag: submit/tizen_6.5/20220222.095404~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9dfdd2be453ba3b71d642251dcb6e3d3d994ddf0;p=platform%2Fcore%2Fuifw%2Fe-mod-tizen-wl-textinput.git Modified to prevent passing invalid IME geometry to the app When IME is in floating mode, IME doesn't know the exact x, y coordinates. Change-Id: I0c042f944401e9db934cc003a6429577e10a8de7 --- diff --git a/src/e_mod_input_panel.c b/src/e_mod_input_panel.c index 5b0e824..1e2346c 100644 --- a/src/e_mod_input_panel.c +++ b/src/e_mod_input_panel.c @@ -1665,4 +1665,24 @@ void e_input_panel_floating_panel_set(Eina_Bool state) void e_input_panel_floating_drag_enabled(Eina_Bool enabled) { g_floating_info->moving_req = enabled; +} + +Eina_Bool e_input_panel_floating_mode_get() +{ + E_Input_Panel_Surface *ips; + Eina_List *l; + Eina_List *l_next; + Eina_Bool ret = EINA_FALSE; + + if (!g_input_panel) return ret; + + EINA_LIST_FOREACH_SAFE(g_input_panel->surfaces, l, l_next, ips) + { + if (ips && ips->ec) + { + ret = ips->ec->vkbd.floating; + } + } + + return ret; } \ No newline at end of file diff --git a/src/e_mod_main.c b/src/e_mod_main.c index 4f225b0..46a2701 100644 --- a/src/e_mod_main.c +++ b/src/e_mod_main.c @@ -1092,7 +1092,7 @@ _e_text_input_method_context_cb_update_ise_geometry(struct wl_client *client EIN return; } - if ((context->input) && (context->input->resource)) + if ((context->input) && (context->input->resource) && !(e_input_panel_floating_mode_get())) { _e_text_input_send_input_panel_geometry(context->input->resource, x, y, width, height); g_updated_geometry = EINA_TRUE; diff --git a/src/e_mod_main.h b/src/e_mod_main.h index 8809418..5dfb8ad 100644 --- a/src/e_mod_main.h +++ b/src/e_mod_main.h @@ -27,6 +27,7 @@ Eina_Bool e_input_panel_surface_destroy(E_Client *ec); int e_input_panel_is_effect_running(void); 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); typedef enum { TIZEN_PROFILE_UNKNOWN = 0,