From: Inhong Han Date: Mon, 20 May 2024 23:44:34 +0000 (+0900) Subject: Changed to update layout instantly when moving and resizing the IME X-Git-Tag: accepted/tizen/unified/20240603.032300~5 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F77%2F311477%2F1;p=platform%2Fcore%2Fuifw%2Fe-mod-tizen-wl-textinput.git Changed to update layout instantly when moving and resizing the IME Change-Id: I523cb1f9b6f1d81bd51b4aabf915344e0d80c393 --- diff --git a/src/e_mod_input_panel.c b/src/e_mod_input_panel.c index 3d94d82..0d16cb5 100644 --- a/src/e_mod_input_panel.c +++ b/src/e_mod_input_panel.c @@ -619,9 +619,6 @@ _e_input_panel_position_set(E_Client *ec, int w, int h) if (ec->vkbd.floating) { - if (g_floating_info && g_floating_info->resizing) - return; - int sx, sy; if ((is_portrait && !g_floating_info->init_portrait_position) || (!is_portrait && !g_floating_info->init_landscape_position)) _e_input_panel_init_floating_position(ec); @@ -633,12 +630,10 @@ _e_input_panel_position_set(E_Client *ec, int w, int h) _e_input_panel_convert_floating_position(ec, sx, sy, &nx, &ny, E_INPUT_PANEL_COORDINATE_TYPE_LOGICAL); - if (g_floating_info->new_width > 0 && g_floating_info->new_height > 0) + if (g_floating_info->resizing && g_floating_info->new_width > 0 && g_floating_info->new_height > 0) { LOGI("x : %d, y : %d, w : %d, h : %d", nx, ny, g_floating_info->new_width, g_floating_info->new_height); - g_floating_info->resizing = EINA_TRUE; e_client_util_move_resize_without_frame(ec, nx, ny, g_floating_info->new_width, g_floating_info->new_height); - g_floating_info->resizing = EINA_FALSE; g_floating_info->new_width = -1; g_floating_info->new_height = -1; return; @@ -975,11 +970,15 @@ _e_ips_cb_evas_resize(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *e if (e_object_is_del(E_OBJECT(ec))) return; + g_floating_info->resizing = EINA_TRUE; + evas_object_geometry_get(obj, NULL, NULL, &w, &h); LOGI("current angle : %d, w: %d, h: %d", ec->e.state.rot.ang.curr, w, h); _e_input_panel_position_set(ec, w, h); + g_floating_info->resizing = EINA_FALSE; + ips = _e_input_panel_surface_get(ec); if (!ips) return; if (!ips->resizing) return;