FALSE,
"",
KEY_MODIFIER_NONE,
+ FALSE,
FALSE
};
LANGUAGE_INFO *info =
(config_values ? _language_manager.get_language_info(config_values->selected_language.c_str()) : NULL);
if (info) {
- if (g_ise_default_values[keyboard_state->layout].force_latin && !(info->is_latin_language)) {
+ if (!info->is_latin_language) {
if (!keyboard_state->disable_force_latin) {
- force_primary_latin = TRUE;
+ if (g_ise_default_values[keyboard_state->layout].force_latin) {
+ force_primary_latin = TRUE;
+ }
+ else {
+ if (keyboard_state->prefer_latin) {
+ force_primary_latin = TRUE;
+ }
+ }
}
}
}
+
if (force_primary_latin) {
/* If there is enabled latin-based language, select it */
sclboolean selected = FALSE;
ise_reset_context(); // reset ISE
- // if (iseContext.language == ECORE_IMF_INPUT_PANEL_LANG_ALPHABET) {
- // LOGD("alphabet");
- // ise_explictly_set_language(PRIMARY_LATIN_LANGUAGE_INDEX);
- // }
- // else {
- // LOGD("non-alphabet");
- // }
+ KEYBOARD_STATE *keyboard_state = get_keyboard_state();
+
+ if (iseContext.language == ECORE_IMF_INPUT_PANEL_LANG_ALPHABET) {
+ LOGD("prefer latin");
+ if (keyboard_state)
+ keyboard_state->prefer_latin = TRUE;
+ }
+ else {
+ LOGD("prefer automatic");
+ if (keyboard_state)
+ keyboard_state->prefer_latin = FALSE;
+ }
_context_layout = iseContext.layout;
_context_layout_variation = iseContext.layout_variation;