static string g_current_punctuation[MAX_DEFAULT_PUNCTUATION-1] = {"RCENT1", "RCENT2", "RCENT3", "RCENT4", "RCENT5"};
static vector<string> g_softcandidate_string;
static bool g_softcandidate_show = false;
+static bool g_caps_mode_pending = false;
#define SOFT_CANDIDATE_DELETE_TIME (1.0/100)
static Ecore_Timer *g_softcandidate_hide_timer = NULL;
}
}
+static void set_caps_mode(sclboolean mode) {
+ LOGD("mode : %d\n", mode);
+ if (g_ui) {
+ if (g_ui->get_shift_state() != SCL_SHIFT_STATE_LOCK) {
+ g_ui->set_shift_state(mode ? SCL_SHIFT_STATE_ON : SCL_SHIFT_STATE_OFF);
+ g_ui->set_autocapital_shift_state(!mode);
+ }
+ }
+}
+
static void _reset_multitap_state(bool skip_commit = false)
{
LOGD("g_keyboard_state.prev_modifier : %d", g_keyboard_state.prev_modifier);
}
g_keyboard_state.multitap_value = "";
g_keyboard_state.prev_modifier = KEY_MODIFIER_NONE;
+ if (g_caps_mode_pending) {
+ g_caps_mode_pending = false;
+ set_caps_mode(g_keyboard_state.caps_mode);
+ }
}
static void ise_set_cm_private_key(scluint cm_key_id)
LOGD("ic : %x, %x\n", ic, key_event);
}
-static void set_caps_mode(sclboolean mode) {
- LOGD("mode : %d\n", mode);
- if (g_ui) {
- if (g_ui->get_shift_state() != SCL_SHIFT_STATE_LOCK) {
- g_ui->set_shift_state(mode ? SCL_SHIFT_STATE_ON : SCL_SHIFT_STATE_OFF);
- g_ui->set_autocapital_shift_state(!mode);
- }
- }
-}
-
/**
* @brief Delete commit timer.
*
} else {
g_keyboard_state.caps_mode = FALSE;
}
+ g_caps_mode_pending = false;
const sclchar * cur_lang = _language_manager.get_current_language();
if (cur_lang) {
LANGUAGE_INFO *info = _language_manager.get_language_info(cur_lang);
g_keyboard_state.prev_modifier != KEY_MODIFIER_MULTITAP_REPEAT) {
set_caps_mode(g_keyboard_state.caps_mode);
} else {
+ g_caps_mode_pending = true;
LOGD("Currently composing multitap string, skipping caps request");
}
} else {