#define SOFT_CANDIDATE_DELETE_TIME (1.0/100)
static Ecore_Timer *g_softcandidate_hide_timer = NULL;
-static SCLKeyModifier g_prev_modifier;
-
KEYBOARD_STATE g_keyboard_state = {
0,
0,
FALSE,
TRUE,
FALSE,
- ""
+ "",
+ KEY_MODIFIER_NONE
};
#define ISE_LAYOUT_NUMBERONLY_VARIATION_MAX 4
}
}
+static void _reset_multitap_state()
+{
+ 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 = "";
+ g_keyboard_state.prev_modifier = KEY_MODIFIER_NONE;
+}
+
static void ise_set_cm_private_key(scluint cm_key_id)
{
if (cm_key_id >= CM_KEY_LIST_SIZE || g_ui == NULL) {
} else if (event_desc.key_modifier == KEY_MODIFIER_MULTITAP_REPEAT) {
ise_update_preedit_string(event_desc.key_value);
g_keyboard_state.multitap_value = event_desc.key_value;
- } else if (g_prev_modifier == KEY_MODIFIER_MULTITAP_START ||
- g_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 = "";
+ } else {
+ _reset_multitap_state();
}
- g_prev_modifier = event_desc.key_modifier;
+ g_keyboard_state.prev_modifier = event_desc.key_modifier;
if (g_ui) {
switch (event_desc.key_type) {
void
ise_reset_context()
{
- g_keyboard_state.multitap_value = "";
- g_prev_modifier = KEY_MODIFIER_NONE;
+ _reset_multitap_state();
}
void
ise_reset_input_context()
{
- g_keyboard_state.multitap_value = "";
- g_prev_modifier = KEY_MODIFIER_NONE;
+ _reset_multitap_state();
}
void
{
bool bRet = false;
+ 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 = "";
+ g_keyboard_state.prev_modifier = KEY_MODIFIER_NONE;
int lang_id = get_lang_id(language);
if (lang_id != -1) {