Modified not to send commit strings when reset needed 43/85843/1
authorJi-hoon Lee <dalton.lee@samsung.com>
Mon, 29 Aug 2016 08:41:32 +0000 (17:41 +0900)
committerJi-hoon Lee <dalton.lee@samsung.com>
Mon, 29 Aug 2016 08:41:32 +0000 (17:41 +0900)
Change-Id: I1d0980533605514bc54fccec1a8bc8d302327d9b

src/ise.cpp
src/sdk/sdk.cpp

index 8560f94..2052a4b 100644 (file)
@@ -189,7 +189,6 @@ static void _reset_multitap_state()
     LOGD("g_keyboard_state.prev_modifier : %d", g_keyboard_state.prev_modifier);
     if (g_keyboard_state.prev_modifier == KEY_MODIFIER_MULTITAP_START ||
         g_keyboard_state.prev_modifier == KEY_MODIFIER_MULTITAP_REPEAT) {
-        ise_send_string(g_keyboard_state.multitap_value.c_str());
         ise_update_preedit_string("");
     }
     g_keyboard_state.multitap_value = "";
index 37757ec..35440b9 100644 (file)
@@ -155,7 +155,7 @@ int iconv_string(const char *from, const char *to, const char *src, char *dst, s
     return(dstlen - outleftsize);
 }
 
-int process_korean_automata(int is_consonant, unsigned short key_index)
+int process_korean_automata(int is_consonant, unsigned short key_index, bool skip_commit = false)
 {
     MADECODE madecode = {0};
     MAKECODE makecode = { 0 };
@@ -164,10 +164,12 @@ int process_korean_automata(int is_consonant, unsigned short key_index)
     makecode = CJI_GetMakeCode();
 
     int ret = CJI_Automata(is_consonant, key_index, &madecode);
-    iconv_string(AUTOMATA_BASE_ENCODING, SYSTEM_OUTPUT_ENCODING,
-        (const char*)(madecode.ucode), buffer, madecode.size * 2, KOREAN_ENCODING_BUFFER_SIZE);
-    if (buffer[0]) {
-        ise_send_string(buffer);
+    if (!skip_commit) {
+        iconv_string(AUTOMATA_BASE_ENCODING, SYSTEM_OUTPUT_ENCODING,
+            (const char*)(madecode.ucode), buffer, madecode.size * 2, KOREAN_ENCODING_BUFFER_SIZE);
+        if (buffer[0]) {
+            ise_send_string(buffer);
+        }
     }
     iconv_string(AUTOMATA_BASE_ENCODING, SYSTEM_OUTPUT_ENCODING,
         (const char*)(CJI_GetMakeCode().ucode), buffer, CJI_GetMakeCode().size * 2, KOREAN_ENCODING_BUFFER_SIZE);
@@ -495,7 +497,6 @@ sclboolean CSDKISE::flush_imengine(const sclchar *language)
 
     if (g_keyboard_state.prev_modifier == KEY_MODIFIER_MULTITAP_START ||
         g_keyboard_state.prev_modifier == KEY_MODIFIER_MULTITAP_REPEAT) {
-        ise_send_string(g_keyboard_state.multitap_value.c_str());
         ise_update_preedit_string("");
     }
     g_keyboard_state.multitap_value = "";
@@ -513,7 +514,7 @@ sclboolean CSDKISE::flush_imengine(const sclchar *language)
         }
     }
     if (strcmp(_language_manager.get_current_language(), "Korean") == 0) {
-        process_korean_automata(false, SIPKEY_ERROR);
+        process_korean_automata(false, SIPKEY_ERROR, true);
     }
 
     return bRet;