<rec name="uuid_clm_korean" uuid="org.tizen.ise-engine-glm.korean"/>
</keyboard_uuid_table>
<language_table>
- <rec language="English" language_name="English" language_name_abbr="EN(US)" inputmode_QTY="ENGLISH_QTY" inputmode_QTY_name="Qwerty" keyboard_ise_uuid="uuid_clm_english" country_code_URL="uk" is_latin_language="true" accepts_caps_mode="true" locale_string="en_US"/>
+ <rec language="English" language_name="English" language_name_abbr="EN(US)" inputmode_QTY="ENGLISH_QTY" inputmode_QTY_name="Qwerty" keyboard_ise_uuid="uuid_clm_english" country_code_URL="uk" is_latin_language="true" accepts_caps_mode="true" locale_string="en_US" load_in_ime="true"/>
<rec language="Italian" language_name="Italiano" language_name_abbr="IT" inputmode_QTY="ITALIAN_QTY" inputmode_QTY_name="Tastiera Qwerty" keyboard_ise_uuid="uuid_default" country_code_URL="it" is_latin_language="true" accepts_caps_mode="true" locale_string="it_IT"/>
<rec language="Spanish" language_name="Español" language_name_abbr="ES(ES)" inputmode_QTY="SPANISH_QTY" inputmode_QTY_name="Teclado Qwerty" keyboard_ise_uuid="uuid_default" country_code_URL="es" is_latin_language="true" accepts_caps_mode="true" locale_string="es_ES"/>
<rec language="Galician" language_name="Galego" language_name_abbr="GL" inputmode_QTY="GALICIAN_QTY" inputmode_QTY_name="Qwerty" keyboard_ise_uuid="uuid_default" country_code_URL="gl" is_latin_language="true" accepts_caps_mode="true" locale_string="gl_ES"/>
<rec language="Hebrew" language_name="עברית" language_name_abbr="HE" inputmode_QTY="HEBREW_QTY" inputmode_QTY_name="Hebrew" keyboard_ise_uuid="uuid_default" country_code_URL="il"/>
-->
<rec language="Korean" language_name="한국어" language_name_abbr="KR" inputmode_QTY="KOREAN_QTY" inputmode_QTY_name="쿼티" keyboard_ise_uuid="uuid_korean" country_code_URL="kr" locale_string="ko_KR"/>
- <rec language="Chinese" language_name="简体中文" language_name_abbr="CN" inputmode_QTY="CHINESE_QTY" inputmode_QTY_name="Qwerty键盘" main_keyboard_name="中" keyboard_ise_uuid="uuid_clm_chinese" country_code_URL="cn" locale_string="zh_CN"/>
+ <rec language="Chinese" language_name="简体中文" language_name_abbr="CN" inputmode_QTY="CHINESE_QTY" inputmode_QTY_name="Qwerty键盘" main_keyboard_name="中" keyboard_ise_uuid="uuid_clm_chinese" country_code_URL="cn" locale_string="zh_CN" load_in_ime="true"/>
<rec language="Taiwan" language_name="繁體中文-註音" language_name_abbr="TW" inputmode_QTY="ZHUYIN_QTY" inputmode_QTY_name="註音" main_keyboard_name="中" keyboard_ise_uuid="uuid_zhuyin_big" country_code_URL="tw" locale_string="zh_TW"/>
<rec language="Hongkong" language_name="繁體中文-倉頡" language_name_abbr="HK" inputmode_QTY="CANGJIE_QTY" inputmode_QTY_name="倉頡" main_keyboard_name="中" keyboard_ise_uuid="uuid_cangjie_3" country_code_URL="hk" locale_string="zh_HK"/>
<rec language="Japanese" language_name="日本語" language_name_abbr="JA" inputmode_QTY="JAPANESE_QTY" inputmode_QTY_name="Qwerty" main_keyboard_name="あ" keyboard_ise_uuid="uuid_anthy" country_code_URL="jp" locale_string="ja_JP"/>
<rec name="uuid_clm_korean" uuid="org.tizen.ise-engine-glm.korean"/>
</keyboard_uuid_table>
<language_table>
- <rec language="English" language_name="English" inputmode_QTY="ENGLISH_QTY" inputmode_QTY_name="Qwerty" keyboard_ise_uuid="uuid_clm_english" country_code_URL="uk" is_latin_language="true" accepts_caps_mode="true" locale_string="en_US"/>
+ <rec language="English" language_name="English" inputmode_QTY="ENGLISH_QTY" inputmode_QTY_name="Qwerty" keyboard_ise_uuid="uuid_clm_english" country_code_URL="uk" is_latin_language="true" accepts_caps_mode="true" locale_string="en_US" load_in_ime="true"/>
<rec language="Italian" language_name="Italiano" inputmode_QTY="ITALIAN_QTY" inputmode_QTY_name="Tastiera Qwerty" keyboard_ise_uuid="uuid_default" country_code_URL="it" is_latin_language="true" accepts_caps_mode="true" locale_string="it_IT"/>
<rec language="Spanish" language_name="Español" inputmode_QTY="SPANISH_QTY" inputmode_QTY_name="Teclado Qwerty" keyboard_ise_uuid="uuid_default" country_code_URL="es" is_latin_language="true" accepts_caps_mode="true" locale_string="es_ES"/>
<rec language="Galician" language_name="Galego" inputmode_QTY="GALICIAN_QTY" inputmode_QTY_name="Qwerty" keyboard_ise_uuid="uuid_default" country_code_URL="gl" is_latin_language="true" accepts_caps_mode="true" locale_string="gl_ES"/>
<rec language="Hebrew" language_name="עברית" inputmode_QTY="HEBREW_QTY" inputmode_QTY_name="Hebrew" keyboard_ise_uuid="uuid_default" country_code_URL="il"/>
-->
<rec language="Korean" language_name="한국어" inputmode_QTY="KOREAN_QTY" inputmode_QTY_name="쿼티" keyboard_ise_uuid="uuid_korean" country_code_URL="kr" locale_string="ko_KR"/>
- <rec language="Chinese" language_name="简体中文" inputmode_QTY="CHINESE_QTY" inputmode_QTY_name="Qwerty键盘" main_keyboard_name="中" keyboard_ise_uuid="uuid_clm_chinese" country_code_URL="cn" locale_string="zh_CN"/>
+ <rec language="Chinese" language_name="简体中文" inputmode_QTY="CHINESE_QTY" inputmode_QTY_name="Qwerty键盘" main_keyboard_name="中" keyboard_ise_uuid="uuid_clm_chinese" country_code_URL="cn" locale_string="zh_CN" load_in_ime="true"/>
<rec language="Taiwan" language_name="繁體中文-註音" inputmode_QTY="ZHUYIN_QTY" inputmode_QTY_name="註音" main_keyboard_name="中" keyboard_ise_uuid="uuid_zhuyin_big" country_code_URL="tw" locale_string="zh_TW"/>
<rec language="Hongkong" language_name="繁體中文-倉頡" inputmode_QTY="CANGJIE_QTY" inputmode_QTY_name="倉頡" main_keyboard_name="中" keyboard_ise_uuid="uuid_cangjie_3" country_code_URL="hk" locale_string="zh_HK"/>
<rec language="Japanese" language_name="日本語" inputmode_QTY="JAPANESE_QTY" inputmode_QTY_name="Qwerty" main_keyboard_name="あ" keyboard_ise_uuid="uuid_anthy" country_code_URL="jp" locale_string="ja_JP"/>
<rec name="uuid_clm_korean" uuid="org.tizen.ise-engine-glm.korean"/>
</keyboard_uuid_table>
<language_table>
- <rec language="English" language_name="EN(US)" language_name_abbr="EN(US)" inputmode_QTY="ENGLISH_4X4" inputmode_QTY_name="3x4 keyboard" keyboard_ise_uuid="uuid_clm_english" country_code_URL="uk" is_latin_language="true" accepts_caps_mode="true" locale_string="en_US"/>
+ <rec language="English" language_name="EN(US)" language_name_abbr="EN(US)" inputmode_QTY="ENGLISH_4X4" inputmode_QTY_name="3x4 keyboard" keyboard_ise_uuid="uuid_clm_english" country_code_URL="uk" is_latin_language="true" accepts_caps_mode="true" locale_string="en_US" load_in_ime="true"/>
<rec language="Italian" language_name="Italiano" language_name_abbr="IT" inputmode_QTY="ITALIAN_4X4" inputmode_QTY_name="3x4 keyboard" keyboard_ise_uuid="uuid_default" country_code_URL="it" is_latin_language="true" accepts_caps_mode="true" locale_string="it_IT"/>
<rec language="Spanish" language_name="Español" language_name_abbr="ES(ES)" inputmode_QTY="SPANISH_4X4" inputmode_QTY_name="3x4 keyboard" keyboard_ise_uuid="uuid_default" country_code_URL="es" is_latin_language="true" accepts_caps_mode="true" locale_string="es_ES"/>
<rec language="Galician" language_name="Galego" language_name_abbr="GL" inputmode_QTY="GALICIA_4X4" inputmode_QTY_name="3x4 keyboard" keyboard_ise_uuid="uuid_default" country_code_URL="gl" is_latin_language="true" accepts_caps_mode="true" locale_string="gl_ES"/>
BuildRequires: pkgconfig(gio-2.0)
BuildRequires: pkgconfig(pkgmgr-info)
Requires: ise-engine-glm
+Requires: ise-engine-default
# This is for old profile-based OBS project optimizations.
# In 4.0 unified build env, this if statement is always true.
priority = LANGAUGE_PRIORITY_NONE;
is_latin_language = false;
accepts_caps_mode = false;
+ load_in_ime = false;
}
/* Indicates whether this language was enabled in option window's language selection list */
sclboolean enabled;
sclboolean is_latin_language;
/* If this language accepts caps mode, try to handle AutoCapitalization option */
sclboolean accepts_caps_mode;
+ sclboolean load_in_ime;
} LANGUAGE_INFO;
GVariant *reply_body = NULL;
bool result = false;
+ LOGD("engine id : %s, module name : %s", engine_id, module_name);
+
if (!dbus_info) {
LOGW("dbus info is not allocated.");
return;
Candidate *g_candidate = NULL;
+static ISELanguageManager _language_manager;
+
class CandidateEventListener: public EventListener
{
public:
void on_event(const EventDesc &desc)
{
const MultiEventDesc &multidesc = dynamic_cast<const MultiEventDesc &>(desc);
+ LANGUAGE_INFO *info = _language_manager.get_language_info(_language_manager.get_current_language());
+
switch (multidesc.type) {
case MultiEventDesc::CANDIDATE_ITEM_MOUSE_DOWN:
if (g_autofill_exist) {
} else if (multidesc.index < (int)g_smartreply_size + 1) {
ise_send_string(g_softcandidate_string[multidesc.index].c_str());
} else {
- engine_loader_select_candidate(multidesc.index - g_smartreply_size - 1);
+ if (info && info->load_in_ime)
+ ime_select_candidate(multidesc.index - g_smartreply_size - 1);
+ else
+ engine_loader_select_candidate(multidesc.index - g_smartreply_size - 1);
}
} else {
if (multidesc.index < (int)g_smartreply_size)
ise_send_string(g_softcandidate_string[multidesc.index].c_str());
- else
- engine_loader_select_candidate(multidesc.index - g_smartreply_size);
+ else {
+ if (info && info->load_in_ime)
+ ime_select_candidate(multidesc.index - g_smartreply_size);
+ else
+ engine_loader_select_candidate(multidesc.index - g_smartreply_size);
+ }
}
break;
case MultiEventDesc::CANDIDATE_MORE_VIEW_SHOW:
};
static CandidateEventListener g_candidate_event_listener;
-static ISELanguageManager _language_manager;
#define MVK_Shift_L 0xffe1
#define MVK_Caps_Lock 0xffe5
#define MVK_Shift_Off 0xffe1
LANGUAGE_INFO *info = _language_manager.get_language_info(cur_lang);
if (info) {
if (info->accepts_caps_mode) {
- engine_loader_send_imengine_event(MVK_Shift_Enable, 0);
+ if (info->load_in_ime)
+ ime_send_imengine_event(MVK_Shift_Enable, 0);
+ else
+ engine_loader_send_imengine_event(MVK_Shift_Enable, 0);
set_caps_mode(g_keyboard_state.caps_mode);
} else {
- engine_loader_send_imengine_event(MVK_Shift_Disable, 0);
+ if (info->load_in_ime)
+ ime_send_imengine_event(MVK_Shift_Disable, 0);
+ else
+ engine_loader_send_imengine_event(MVK_Shift_Disable, 0);
g_ui->set_shift_state(SCL_SHIFT_STATE_OFF);
}
}
if (info->accepts_caps_mode) {
LOGD("shift state: %d\n", desc->shift_state);
if (desc->shift_state == SCL_SHIFT_STATE_OFF) {
- engine_loader_send_imengine_event(MVK_Shift_Off, 0);
+ if (info->load_in_ime)
+ ime_send_imengine_event(MVK_Shift_Off, 0);
+ else
+ engine_loader_send_imengine_event(MVK_Shift_Off, 0);
} else if (desc->shift_state == SCL_SHIFT_STATE_ON) {
- engine_loader_send_imengine_event(MVK_Shift_On, 0);
+ if (info->load_in_ime)
+ ime_send_imengine_event(MVK_Shift_On, 0);
+ else
+ engine_loader_send_imengine_event(MVK_Shift_On, 0);
} else if (desc->shift_state == SCL_SHIFT_STATE_LOCK) {
- engine_loader_send_imengine_event(MVK_Shift_Lock, 0);
+ if (info->load_in_ime)
+ ime_send_imengine_event(MVK_Shift_Lock, 0);
+ else
+ engine_loader_send_imengine_event(MVK_Shift_Lock, 0);
}
ret = SCL_EVENT_PASS_ON;
}
g_keyboard_state.layout == ISE_LAYOUT_STYLE_IP ||
g_keyboard_state.layout == ISE_LAYOUT_STYLE_MONTH ||
g_keyboard_state.layout == ISE_LAYOUT_STYLE_NUMBERONLY) {
-
+ ime_set_engine_loader_flag(true);
engine_loader_set_imengine(DEFAULT_KEYBOARD_ISE_UUID, DEFAULT_KEYBOARD_ISE_PKGID);
}
}
m_table[m_size].flush_command = get_prop_int(cur_node, "flush_command");
m_table[m_size].is_latin_language = get_prop_bool(cur_node, "is_latin_language");
m_table[m_size].accepts_caps_mode = get_prop_bool(cur_node, "accepts_caps_mode");
+ m_table[m_size].load_in_ime = get_prop_bool(cur_node, "load_in_ime");
m_size++;
}
flush_command = 0;
is_latin_language = false;
accepts_caps_mode = false;
+ load_in_ime = false;
}
/* This is the string ID of this language, used in ISE side. For example, ISE developer can use this string to select this language, by passing "Korean" to ISELanguageManager::select_language() function */
char *language;
bool is_latin_language;
/* If this language accepts caps mode, try to handle AutoCapitalization option */
bool accepts_caps_mode;
+ bool load_in_ime;
} ISE_LANG_TABLE;
typedef struct Keyboard_UUID {
language.resource_file = MAIN_ENTRY_XML_PATH;
language.is_latin_language = table[loop].is_latin_language;
language.accepts_caps_mode = table[loop].accepts_caps_mode;
+ language.load_in_ime = table[loop].load_in_ime;
/* These variable should be read from stored setting values */
language.enabled = FALSE;
{
SCLEventReturnType ret = SCL_EVENT_PASS_ON;
const sclchar *cur_lang = _language_manager.get_current_language();
- if (event_desc.key_modifier == KEY_MODIFIER_LONGKEY)
- engine_loader_flush_imengine();
+ LANGUAGE_INFO *info = NULL;
+ if (cur_lang)
+ info = _language_manager.get_language_info(cur_lang);
+ if (event_desc.key_modifier == KEY_MODIFIER_LONGKEY) {
+ if (info && info->load_in_ime)
+ ime_flush_imengine();
+ else
+ engine_loader_flush_imengine();
+ }
switch (event_desc.key_type) {
case KEY_TYPE_CHAR:
ret = process_key_type_char(event_desc);
break;
case KEY_TYPE_STRING:
- engine_loader_flush_imengine();
+ if (info && info->load_in_ime)
+ ime_flush_imengine();
+ else
+ engine_loader_flush_imengine();
+
if (cur_lang && strcmp(cur_lang, "Korean") == 0) {
process_korean_automata(false, SIPKEY_ERROR);
}
break;
case KEY_TYPE_MODECHANGE:
{
- engine_loader_flush_imengine();
+ if (info && info->load_in_ime)
+ ime_flush_imengine();
+ else
+ engine_loader_flush_imengine();
+
if (cur_lang && strcmp(cur_lang, "Korean") == 0) {
process_korean_automata(false, SIPKEY_ERROR);
}
} else if (event_desc.key_event == MVK_space) {
if (_language_manager.get_enabled_languages_num() > 1) {
if (event_desc.key_modifier == KEY_MODIFIER_DIRECTION_LEFT) {
- engine_loader_flush_imengine();
+ if (info && info->load_in_ime)
+ ime_flush_imengine();
+ else
+ engine_loader_flush_imengine();
/* If flick event upon space key was detected, perform a language change and don't proceed anymore */
_language_manager.select_previous_language();
g_keyboard_state.disable_force_latin = TRUE;
ret = SCL_EVENT_DONE;
} else if (event_desc.key_modifier == KEY_MODIFIER_DIRECTION_RIGHT) {
- engine_loader_flush_imengine();
+ if (info && info->load_in_ime)
+ ime_flush_imengine();
+ else
+ engine_loader_flush_imengine();
/* If flick event upon space key was detected, perform a language change and don't proceed anymore */
_language_manager.select_next_language();
if (ret == PMINFO_R_OK) {
ret = pkgmgrinfo_appinfo_get_pkgid(handle, &pkgid);
if (ret == PMINFO_R_OK) {
- engine_loader_set_imengine(table[loop].keyboard_ise_uuid, pkgid);
+ if (table[loop].load_in_ime) {
+ engine_loader_set_imengine(DEFAULT_KEYBOARD_ISE_UUID, DEFAULT_KEYBOARD_ISE_PKGID);
+ ime_set_engine_loader_flag(false);
+ ime_set_imengine(table[loop].keyboard_ise_uuid);
+ }
+ else {
+ ime_set_imengine(DEFAULT_KEYBOARD_ISE_UUID);
+ ime_set_engine_loader_flag(true);
+ engine_loader_set_imengine(table[loop].keyboard_ise_uuid, pkgid);
+ }
}
else {
LOGE("Retrieve pkgid failed : %s, %p", table[loop].keyboard_ise_uuid, handle);
if (info->accepts_caps_mode) {
if (g_keyboard_state.caps_mode) {
g_ui->set_shift_state(SCL_SHIFT_STATE_ON);
- engine_loader_send_imengine_event(MVK_Shift_On, 0);
+ if (table[loop].load_in_ime)
+ ime_send_imengine_event(MVK_Shift_On, 0);
+ else
+ engine_loader_send_imengine_event(MVK_Shift_On, 0);
g_keyboard_state.caps_mode = TRUE;
} else {
g_ui->set_shift_state(SCL_SHIFT_STATE_OFF);
- engine_loader_send_imengine_event(MVK_Shift_Off, 0);
+ if (table[loop].load_in_ime)
+ ime_send_imengine_event(MVK_Shift_Off, 0);
+ else
+ engine_loader_send_imengine_event(MVK_Shift_Off, 0);
g_keyboard_state.caps_mode = FALSE;
}
} else {
*/
bRet = true;
} else {
- engine_loader_reset_imengine();
+ if (table[lang_id].load_in_ime)
+ ime_reset_imengine();
+ else
+ engine_loader_reset_imengine();
bRet = true;
}
}