From: yanjie.hu Date: Tue, 2 Apr 2013 12:30:21 +0000 (+0800) Subject: adapt auto capitalize feature X-Git-Tag: accepted/tizen_2.1/20130425.024751~24 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=416677b0125cf401853ea64e5b519fa137d6c24b;p=framework%2Fuifw%2Fise-default.git adapt auto capitalize feature Change-Id: I8b68ee8993d399abf57446edd33b4877d225bf06 --- diff --git a/src/ise.cpp b/src/ise.cpp index 98e9dd3..f82c98e 100644 --- a/src/ise.cpp +++ b/src/ise.cpp @@ -51,6 +51,9 @@ KEYBOARD_STATE g_keyboard_state = { #define MVK_Shift_L 0xffe1 #define MVK_Caps_Lock 0xffe5 +#define MVK_Shift_Off 0xffe1 +#define MVK_Shift_On 0xffe2 +#define MVK_Shift_Lock 0xffe6 #define USER_KEYSTRING_OPTION "OPTION" @@ -138,13 +141,19 @@ SCLEventReturnType CUIEventCallback::on_event_notification(SCLUINotiType noti_ty } } if (noti_type == SCL_UINOTITYPE_SHIFT_STATE_CHANGE) { - if (g_keyboard_state.caps_mode) { - LANGUAGE_INFO *info = ISELanguageManager::get_language_info(ISELanguageManager::get_current_language()); - if (info) { - if (info->accepts_caps_mode) { - /* Do not change the shift state of OFF, by not calling the default SCL event handler */ - ret = SCL_EVENT_DONE; + LANGUAGE_INFO *info = ISELanguageManager::get_language_info(ISELanguageManager::get_current_language()); + if (info) { + if (info->accepts_caps_mode) { + if (etc_info == SCL_SHIFT_STATE_OFF) { + ise_send_event(MVK_Shift_Off, scim::SCIM_KEY_NullMask); + } + else if (etc_info == SCL_SHIFT_STATE_ON) { + ise_send_event(MVK_Shift_On, scim::SCIM_KEY_NullMask); } + else if (etc_info == SCL_SHIFT_STATE_LOCK) { + ise_send_event(MVK_Shift_Lock, scim::SCIM_KEY_NullMask); + } + ret = SCL_EVENT_PASS_ON; } } } @@ -422,9 +431,7 @@ ise_set_caps_mode(unsigned int mode) LANGUAGE_INFO *info = ISELanguageManager::get_language_info(ISELanguageManager::get_current_language()); if (info) { if (info->accepts_caps_mode) { - if (gSCLUI->get_shift_state() != SCL_SHIFT_STATE_LOCK) { - gSCLUI->set_shift_state(mode ? SCL_SHIFT_STATE_ON : SCL_SHIFT_STATE_OFF); - } + gSCLUI->set_caps_mode(mode); } } }