#include <sys/stat.h>
#include <fcntl.h>
#include <vconf.h>
+#include <Ecore.h>
#include <Ecore_IMF.h>
#include <Elementary.h>
#include <sclui.h>
#define MVK_Shift_Enable 0x9fe7
#define MVK_Shift_Disable 0x9fe8
#define MVK_space 0x020
+#define MVK_Done 0xff0d
#define CM_KEY_LIST_SIZE 5
+#define MULTITAP_TIMEOUT 3.0
#define USER_KEYSTRING_OPTION "OPTION"
#define USER_KEYSTRING_EMOTICON "EMOTICON_LAYOUT"
#define USER_KEYSTRING_CLIPBOARD "CLIPBOARD"
class CUIEventCallback : public ISCLUIEventCallback
{
public :
+ Ecore_Timer* word_timer = NULL;
+ static Eina_Bool _multi_tap_timer_cb(void *data)
+ {
+ LOGD("Time Out");
+ ise_send_event(MVK_Done, KEY_MASK_NULL);
+ return ECORE_CALLBACK_CANCEL;
+ }
SCLEventReturnType on_event_key_clicked(SclUIEventDesc event_desc);
SCLEventReturnType on_event_drag_state_changed(SclUIEventDesc event_desc);
SCLEventReturnType on_event_notification(SCLUINotiType noti_type, SclNotiDesc *etc_info);
SCLEventReturnType CUIEventCallback::on_event_key_clicked(SclUIEventDesc event_desc)
{
SCLEventReturnType ret = SCL_EVENT_PASS_ON;
-
+ if (word_timer != NULL) {
+ ecore_timer_del(word_timer);
+ word_timer = NULL;
+ }
if (event_desc.key_modifier == KEY_MODIFIER_MULTITAP_START) {
if (!g_keyboard_state.multitap_value.empty()) {
ise_send_string(g_keyboard_state.multitap_value.c_str());
if (g_keyboard_state.layout == ISE_LAYOUT_STYLE_NUMBER) {
ime_send_key_event(IME_KEY_Print, IME_KEY_MASK_CONTROL, false);
} else {
+ if (word_timer == NULL && (!g_candidate || !g_softcandidate_show)) {
+ word_timer = ecore_timer_add(MULTITAP_TIMEOUT, _multi_tap_timer_cb, NULL);
+ }
ime_send_key_event(IME_KEY_Select, IME_KEY_MASK_CONTROL, false);
}
#endif
if (g_keyboard_state.layout == ISE_LAYOUT_STYLE_VOICE) {
ise_stt_stop();
}
+#ifdef _WEARABLE
+ if (event_desc.key_event == MVK_Done) {
+ LOGD("ENTER");
+ //commit the preedit string first
+ ise_send_event(event_desc.key_event, KEY_MASK_NULL);
+ }
+#endif
ise_send_event(event_desc.key_event, KEY_MASK_NULL);
if (event_desc.key_event == MVK_Shift_L) {
g_need_send_shift_event = TRUE;