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 = "";
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 };
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);
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 = "";
}
}
if (strcmp(_language_manager.get_current_language(), "Korean") == 0) {
- process_korean_automata(false, SIPKEY_ERROR);
+ process_korean_automata(false, SIPKEY_ERROR, true);
}
return bRet;