class ISELanguageManager {
public:
- sclboolean add_language(LANGUAGE_INFO language);
+ sclboolean add_language(LANGUAGE_INFO &language);
sclboolean select_language(const sclchar *name, sclboolean temporarily = FALSE);
sclboolean select_current_language();
sclboolean
ISELanguageManager::set_all_languages_enabled(sclboolean enabled)
{
- sclboolean ret = TRUE;
+ sclboolean ret = FALSE;
vector<LANGUAGE_INFO>::iterator iter;
for (iter = _language_vector.begin(); iter != _language_vector.end(); ++iter) {
iter->enabled = enabled;
iter->enabled_temporarily = FALSE;
+ ret = TRUE;
}
return ret;
/* Each language-specific source files should put their callback information in the following vectors */
sclboolean
-ISELanguageManager::add_language(LANGUAGE_INFO language)
+ISELanguageManager::add_language(LANGUAGE_INFO &language)
{
int language_id = -1;
break;
case KEY_TYPE_STRING:
ime_flush_imengine();
- if (strcmp(_language_manager.get_current_language(), "Korean") == 0) {
+ if (cur_lang && strcmp(cur_lang, "Korean") == 0) {
process_korean_automata(false, SIPKEY_ERROR);
}
if (event_desc.key_modifier != KEY_MODIFIER_MULTITAP_START &&
case KEY_TYPE_MODECHANGE:
{
ime_flush_imengine();
- if (strcmp(_language_manager.get_current_language(), "Korean") == 0) {
+ if (cur_lang && strcmp(cur_lang, "Korean") == 0) {
process_korean_automata(false, SIPKEY_ERROR);
}
flush_imengine(cur_lang);
}
}
- if (strcmp(_language_manager.get_current_language(), "Korean") == 0) {
+ if (cur_lang && strcmp(cur_lang, "Korean") == 0) {
if (event_desc.key_event == MVK_BackSpace) {
if (process_korean_automata(false, SIPKEY_BACKSPACE))
ret = SCL_EVENT_DONE;
bRet = true;
}
}
- if (strcmp(_language_manager.get_current_language(), "Korean") == 0) {
+ const char *cur_lang = _language_manager.get_current_language();
+ if (cur_lang && strcmp(cur_lang, "Korean") == 0) {
process_korean_automata(false, SIPKEY_ERROR, true);
}
}