const char *str = edje_object_part_text_get(
item, "candidate");
- int index;
- vector<string>::const_iterator it =
- find(cur_candidates.begin(), cur_candidates.end(), str);
- if (it != cur_candidates.end()) {
- index = it-cur_candidates.begin();
- } else {
- index = -1;
+ int index = -1;
+ if (str) {
+ vector<string>::const_iterator it =
+ find(cur_candidates.begin(), cur_candidates.end(), str);
+ if (it != cur_candidates.end()) {
+ index = it-cur_candidates.begin();
+ } else {
+ index = -1;
+ }
}
+
// notify listners the event happend
EventDesc desc;
desc.type = EventDesc::CANDIDATE_ITEM_MOUSE_DOWN;
- desc.text = str;
+ desc.text = str? str : "";
desc.index = index;
notify_listeners(desc);
}
// notify listners the event happend
EventDesc desc;
desc.type = EventDesc::CANDIDATE_ITEM_MOUSE_UP;
- desc.text = str;
+ desc.text = str? str : "";
notify_listeners(desc);
}
// notify listners the event happend
EventDesc desc;
desc.type = EventDesc::CANDIDATE_ITEM_MOUSE_MOVE;
- desc.text = str;
+ desc.text = str? str : "";
notify_listeners(desc);
}
const char *str = edje_object_part_text_get(
item, "candidate");
- int index;
- vector<string>::const_iterator it =
- find(cur_candidates.begin(), cur_candidates.end(), str);
- if (it != cur_candidates.end()) {
- index = it-cur_candidates.begin();
- } else {
- index = -1;
- }
- if (it != cur_candidates.end()) {
- index = it-cur_candidates.begin();
- } else {
- index = -1;
+ int index = -1;
+ if (str) {
+ vector<string>::const_iterator it =
+ find(cur_candidates.begin(), cur_candidates.end(), str);
+ if (it != cur_candidates.end()) {
+ index = it-cur_candidates.begin();
+ } else {
+ index = -1;
+ }
}
//hide_more_view();
MultiEventDesc desc;
desc.type = MultiEventDesc::CANDIDATE_ITEM_MOUSE_DOWN;
desc.index = index;
- desc.text = str;
+ desc.text = str? str : "";
notify_listeners(desc);
}
ret = _language_manager.select_next_language();
}
}
- LANGUAGE_INFO *info = _language_manager.get_language_info(_language_manager.get_current_language());
- if (info) {
- if (info->accepts_caps_mode) {
- ise_send_event(MVK_Shift_Enable, KEY_MASK_NULL);
- set_caps_mode(g_keyboard_state.caps_mode);
- } else {
- ise_send_event(MVK_Shift_Disable, KEY_MASK_NULL);
- g_ui->set_shift_state(SCL_SHIFT_STATE_OFF);
+
+ const sclchar * cur_lang = _language_manager.get_current_language();
+ if (cur_lang) {
+ LANGUAGE_INFO *info = _language_manager.get_language_info(cur_lang);
+ if (info) {
+ if (info->accepts_caps_mode) {
+ ise_send_event(MVK_Shift_Enable, KEY_MASK_NULL);
+ set_caps_mode(g_keyboard_state.caps_mode);
+ } else {
+ ise_send_event(MVK_Shift_Disable, KEY_MASK_NULL);
+ g_ui->set_shift_state(SCL_SHIFT_STATE_OFF);
+ }
}
}
}
if (noti_type == SCL_UINOTITYPE_SHIFT_STATE_CHANGE) {
if (g_need_send_shift_event) {
- LANGUAGE_INFO *info = _language_manager.get_language_info(_language_manager.get_current_language());
- SclNotiShiftStateChangeDesc *desc = static_cast<SclNotiShiftStateChangeDesc*>(etc_info);
- if (info && desc) {
- if (info->accepts_caps_mode) {
- LOGD ("shift state: %d", desc->shift_state);
- if (desc->shift_state == SCL_SHIFT_STATE_OFF) {
- ise_send_event(MVK_Shift_Off, KEY_MASK_NULL);
- }
- else if (desc->shift_state == SCL_SHIFT_STATE_ON) {
- ise_send_event(MVK_Shift_On, KEY_MASK_NULL);
- }
- else if (desc->shift_state == SCL_SHIFT_STATE_LOCK) {
- ise_send_event(MVK_Shift_Lock, KEY_MASK_NULL);
+ const sclchar * cur_lang = _language_manager.get_current_language();
+ if (cur_lang) {
+ LANGUAGE_INFO *info = _language_manager.get_language_info(cur_lang);
+ SclNotiShiftStateChangeDesc *desc = static_cast<SclNotiShiftStateChangeDesc*>(etc_info);
+ if (info && desc) {
+ if (info->accepts_caps_mode) {
+ LOGD ("shift state: %d", desc->shift_state);
+ if (desc->shift_state == SCL_SHIFT_STATE_OFF) {
+ ise_send_event(MVK_Shift_Off, KEY_MASK_NULL);
+ }
+ else if (desc->shift_state == SCL_SHIFT_STATE_ON) {
+ ise_send_event(MVK_Shift_On, KEY_MASK_NULL);
+ }
+ else if (desc->shift_state == SCL_SHIFT_STATE_LOCK) {
+ ise_send_event(MVK_Shift_Lock, KEY_MASK_NULL);
+ }
+ ret = SCL_EVENT_PASS_ON;
}
- ret = SCL_EVENT_PASS_ON;
}
}
g_need_send_shift_event = FALSE;
}
g_keyboard_state.ic = ic;
/* Reset input mode if the current language is not the selected language */
- if (g_config_values.selected_language.compare(_language_manager.get_current_language()) != 0) {
- reset_inputmode = TRUE;
+ const sclchar * cur_lang = _language_manager.get_current_language();
+ if (cur_lang) {
+ if (g_config_values.selected_language.compare(cur_lang) != 0) {
+ reset_inputmode = TRUE;
+ }
}
/* No matter what, just reset the inputmode if it needs to */
if (g_keyboard_state.need_reset) {
} else {
g_keyboard_state.caps_mode = FALSE;
}
- LANGUAGE_INFO *info = _language_manager.get_language_info(_language_manager.get_current_language());
- if (info) {
- if (info->accepts_caps_mode) {
- set_caps_mode(g_keyboard_state.caps_mode);
- } else {
- g_ui->set_shift_state(SCL_SHIFT_STATE_OFF);
+ const sclchar * cur_lang = _language_manager.get_current_language();
+ if (cur_lang) {
+ LANGUAGE_INFO *info = _language_manager.get_language_info(cur_lang);
+ if (info) {
+ if (info->accepts_caps_mode) {
+ set_caps_mode(g_keyboard_state.caps_mode);
+ } else {
+ g_ui->set_shift_state(SCL_SHIFT_STATE_OFF);
+ }
}
}
}
// patch for Chinese symbol ^
// Chinese engine will regards ^ as ……
// this patch is to avoid this
- if (0 == strcmp(_language_manager.get_current_language(), "Chinese")) {
- if (event_desc.key_event == '^') {
- ise_forward_key_event(event_desc.key_event);
- return SCL_EVENT_DONE;
+ const sclchar * cur_lang = _language_manager.get_current_language();
+ if (cur_lang) {
+ if (0 == strcmp(cur_lang, "Chinese")) {
+ if (event_desc.key_event == '^') {
+ ise_forward_key_event(event_desc.key_event);
+ return SCL_EVENT_DONE;
+ }
}
}
// patch for Chinese symbol ^ end
/* If longkey symbol was pressed, let's flush the preedit buffer */
if (event_desc.key_modifier == KEY_MODIFIER_LONGKEY) {
- flush_imengine(_language_manager.get_current_language());
+ flush_imengine(cur_lang);
}
SCLEventReturnType CSDKISE::on_event_key_clicked(SclUIEventDesc event_desc)
{
SCLEventReturnType ret = SCL_EVENT_PASS_ON;
+ const sclchar * cur_lang = _language_manager.get_current_language();
switch (event_desc.key_type) {
case KEY_TYPE_CHAR:
ret = process_key_type_char(event_desc);
break;
case KEY_TYPE_STRING:
- flush_imengine(_language_manager.get_current_language());
+ flush_imengine(cur_lang);
break;
case KEY_TYPE_MODECHANGE:
{
- flush_imengine(_language_manager.get_current_language());
+ flush_imengine(cur_lang);
}
break;
case KEY_TYPE_CONTROL:
event_desc.key_event != MVK_Shift_Lock &&
event_desc.key_event != MVK_space &&
event_desc.key_event != MVK_Return) {
- flush_imengine(_language_manager.get_current_language());
+ flush_imengine(cur_lang);
}
if (event_desc.key_event == MVK_space) {
if (_language_manager.get_enabled_languages_num() > 1) {
_language_manager.select_next_language();
ret = SCL_EVENT_DONE;
}
- LANGUAGE_INFO *info = _language_manager.get_language_info(_language_manager.get_current_language());
- if (info) {
- if (info->accepts_caps_mode) {
- // FIXME this if condition means the AC is off
- if (g_keyboard_state.layout != ISE_LAYOUT_STYLE_NORMAL) {
+ if (cur_lang) {
+ LANGUAGE_INFO *info = _language_manager.get_language_info(cur_lang);
+ if (info) {
+ if (info->accepts_caps_mode) {
+ // FIXME this if condition means the AC is off
+ if (g_keyboard_state.layout != ISE_LAYOUT_STYLE_NORMAL) {
+ g_ui->set_autocapital_shift_state(TRUE);
+ g_ui->set_shift_state(SCL_SHIFT_STATE_OFF);
+ }
+
+ // normal layout means the AC is on
+ else {
+ g_ui->set_autocapital_shift_state(FALSE);
+ ise_send_event(MVK_Shift_Enable, KEY_MASK_NULL);
+ set_caps_mode(g_keyboard_state.caps_mode);
+ }
+ } else {
g_ui->set_autocapital_shift_state(TRUE);
+ ise_send_event(MVK_Shift_Disable, KEY_MASK_NULL);
g_ui->set_shift_state(SCL_SHIFT_STATE_OFF);
}
-
- // normal layout means the AC is on
- else {
- g_ui->set_autocapital_shift_state(FALSE);
- ise_send_event(MVK_Shift_Enable, KEY_MASK_NULL);
- set_caps_mode(g_keyboard_state.caps_mode);
- }
- } else {
- g_ui->set_autocapital_shift_state(TRUE);
- ise_send_event(MVK_Shift_Disable, KEY_MASK_NULL);
- g_ui->set_shift_state(SCL_SHIFT_STATE_OFF);
}
}
} else {