From d410ff9c25bd13799e96f26dabce11d94788a767 Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Mon, 29 Aug 2016 17:41:32 +0900 Subject: [PATCH] Modified not to send commit strings when reset needed Change-Id: I1d0980533605514bc54fccec1a8bc8d302327d9b --- src/ise.cpp | 1 - src/sdk/sdk.cpp | 15 ++++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/ise.cpp b/src/ise.cpp index 8560f94..2052a4b 100644 --- a/src/ise.cpp +++ b/src/ise.cpp @@ -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 = ""; diff --git a/src/sdk/sdk.cpp b/src/sdk/sdk.cpp index 37757ec..35440b9 100644 --- a/src/sdk/sdk.cpp +++ b/src/sdk/sdk.cpp @@ -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; -- 2.7.4