From: Ji-hoon Lee Date: Wed, 30 Nov 2016 06:47:02 +0000 (+0900) Subject: Modified not to send unnecessary reset request X-Git-Tag: accepted/tizen/3.0/common/20161201.135053~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=26036aa67ba3af1bb35f807d935630d6a3a32bf9;p=platform%2Fcore%2Fuifw%2Fisf.git Modified not to send unnecessary reset request Change-Id: I20f76896dbd305ea6c4c8bb68c5e0a5120c7be02 --- diff --git a/ism/extras/wayland_immodule/wayland_imcontext.c b/ism/extras/wayland_immodule/wayland_imcontext.c index c3b7c72..63d1070 100644 --- a/ism/extras/wayland_immodule/wayland_imcontext.c +++ b/ism/extras/wayland_immodule/wayland_imcontext.c @@ -1104,6 +1104,19 @@ clear_preedit(WaylandIMContext *imcontext) } } +static Eina_Bool +check_preedit_empty(WaylandIMContext *imcontext) +{ + if (!imcontext) return EINA_TRUE; + + if (imcontext->preedit_text) return EINA_FALSE; + if (imcontext->preedit_attrs) return EINA_FALSE; + if (imcontext->preedit_cursor != 0) return EINA_FALSE; + if (imcontext->preedit_commit) return EINA_FALSE; + + return EINA_TRUE; +} + static void text_input_commit_string(void *data, struct wl_text_input *text_input EINA_UNUSED, @@ -2387,12 +2400,14 @@ wayland_im_context_reset(Ecore_IMF_Context *ctx) if (!imcontext) return; + Eina_Bool preedit_empty = check_preedit_empty(imcontext); + commit_preedit (imcontext); clear_preedit(imcontext); if (!imcontext->input) return; - if (imcontext->text_input) { + if (imcontext->text_input && !preedit_empty) { wl_text_input_reset(imcontext->text_input); } update_state(imcontext);