Modifed to call the preedit_changed_cb without changing preedit_text 61/179061/2
authorInHong Han <inhong1.han@samsung.com>
Tue, 15 May 2018 10:16:27 +0000 (19:16 +0900)
committerInHong Han <inhong1.han@samsung.com>
Thu, 17 May 2018 08:30:42 +0000 (08:30 +0000)
Change-Id: Ie8ce3b0768276809a90524c4d1494cd1e6a1b2e7

ism/extras/wayland_immodule/wayland_imcontext.c
ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp

index 6aabfc7..318224c 100644 (file)
@@ -1911,6 +1911,9 @@ text_input_preedit_string(void                 *data,
         _preedit_cursor_changed = EINA_FALSE;
     }
 
+    if (imcontext->pending_preedit.attrs)
+        preedit_changed = EINA_TRUE;
+
     clear_preedit(imcontext);
 
     imcontext->preedit_text = strdup(text);
index 829e63c..ab76986 100644 (file)
@@ -1977,15 +1977,14 @@ wsc_send_preedit (WSCContextISF* wsc_ctx, int32_t cursor)
 
     uint32_t index = strlen (wsc_ctx->preedit_str);
 
-    wsc_send_preedit_style (wsc_ctx);
-
     if (cursor > 0)
         index = cursor;
 
     /* Note : Since the current wayland_immodule implementation does not call
-     * PREEDIT_CHANGED callback even when preedit_cursor gets updated, for now
-     * we must update preedit_string also whenever preedit_cursor is updated.
-     * So the below 2 lines cannot be called separately. */
+     * PREEDIT_CHANGED callback even when preedit_cursor or preedit_style gets updated, for now
+     * we must update preedit_string also whenever preedit_cursor or preedit_style is updated.
+     * So the below 3 lines cannot be called separately. */
+    wsc_send_preedit_style (wsc_ctx);
     wl_input_method_context_preedit_cursor (wsc_ctx->im_ctx, index);
     wl_input_method_context_preedit_string (wsc_ctx->im_ctx,
                                             wsc_ctx->serial,