static string g_autofill_string;
static vector<string> g_lookup_table_strings;
static vector<string> g_smartreply_strings;
-#ifdef _MOBILE
-static Ecore_Timer *guideline_timer = NULL;
-#endif
#if EXIT_ISE_ON_HIDE
static Ecore_Timer *exit_timer = NULL;
#endif
static sclboolean _cm_popup_opened = FALSE;
static const char *_cm_key_list[CM_KEY_LIST_SIZE] = {USER_KEYSTRING_OPTION, USER_KEYSTRING_EMOTICON, USER_KEYSTRING_CLIPBOARD, USER_KEYSTRING_VOICE, USER_KEYSTRING_FLOATING};
static scluint _current_cm_key_id = 0;
-Evas_Object* _guide_popup_window = NULL;
+Evas_Object* _guide_popup_setting = NULL;
+Evas_Object* _guide_popup_space = NULL;
/*
* This callback class will receive all response events from SCL
return ret;
}
-void ise_destory_guideline_popup()
+void ise_destory_popup_setting()
{
- if (_guide_popup_window != NULL) {
- evas_object_del(_guide_popup_window);
- _guide_popup_window = NULL;
+ if (_guide_popup_setting != NULL) {
+ LOGD("destroy setting popup iter\n");
+ evas_object_del(_guide_popup_setting);
+ _guide_popup_setting = NULL;
+ g_config_values.first_guideset = TRUE;
+ write_ise_config_values();
}
}
-void _guideline_popup_dismissed_cb(void *data, Evas_Object *obj, void *event_info)
+void ise_destory_popup_space()
{
- evas_object_smart_callback_del(obj, "dismissed", _guideline_popup_dismissed_cb);
- evas_object_del(obj);
- obj = NULL;
-
- if (_guide_popup_window != NULL) {
- evas_object_del(_guide_popup_window);
- _guide_popup_window = NULL;
+ if (_guide_popup_space != NULL) {
+ LOGD("destroy space popup iter\n");
+ evas_object_del(_guide_popup_space);
+ _guide_popup_setting = NULL;
+ g_config_values.first_guidechange = TRUE;
+ write_ise_config_values();
}
-
- g_config_values.first_guideset = TRUE;
- write_ise_config_values();
}
Evas_Object *open_message_popup(Evas_Object *parentWnd)
return msg_window;
}
+void _guideline_popup_setting_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ evas_object_smart_callback_del(obj, "dismissed", _guideline_popup_setting_cb);
+ evas_object_del(obj);
+ obj = NULL;
+ ise_destory_popup_setting();
+ g_config_values.first_guideset = TRUE;
+ write_ise_config_values();
+}
+
+void _guideline_popup_space_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ evas_object_smart_callback_del(obj, "dismissed", _guideline_popup_space_cb);
+ evas_object_del(obj);
+ obj = NULL;
+ ise_destory_popup_space();
+ g_config_values.first_guidechange = TRUE;
+ write_ise_config_values();
+}
+
void ise_show_help_popup(sclulong keyEvent)
{
char buf[2048] = {0, };
sclint scr_w = 0;
sclint scr_h = 0;
SclRectangle rectangle = {0};
+ Evas_Object *ctxpopup = NULL;
+ Elm_Theme *theme = NULL;
if (g_ui) {
g_ui->get_screen_resolution(&scr_w, &scr_h);
if (keyEvent == MVK_space) {
+ g_config_values.first_guidechange = TRUE;
+ write_ise_config_values();
g_ui->get_button_geometry("SPACE_KEY", &rectangle);
+ _guide_popup_space = open_message_popup(NATIVE_WINDOW_CAST(ime_get_main_window()));
+
+ theme = elm_theme_new();
+ elm_theme_ref_set(theme, NULL);
+ elm_theme_extension_add(theme, EDJ_FILE);
+
+ ctxpopup = elm_ctxpopup_add(_guide_popup_space);
+ elm_object_theme_set(ctxpopup, theme);
+ evas_object_smart_callback_add(ctxpopup, "dismissed", _guideline_popup_space_cb, (void *)keyEvent);
} else {
+ g_config_values.first_guideset = TRUE;
+ write_ise_config_values();
g_ui->get_button_geometry("CM_KEY", &rectangle);
+ _guide_popup_setting = open_message_popup(NATIVE_WINDOW_CAST(ime_get_main_window()));
+ theme = elm_theme_new();
+ elm_theme_ref_set(theme, NULL);
+ elm_theme_extension_add(theme, EDJ_FILE);
+ ctxpopup = elm_ctxpopup_add(_guide_popup_setting);
+ elm_object_theme_set(ctxpopup, theme);
+ evas_object_smart_callback_add(ctxpopup, "dismissed", _guideline_popup_setting_cb, (void *)keyEvent);
}
}
- _guide_popup_window = open_message_popup(NATIVE_WINDOW_CAST(ime_get_main_window()));
-
- Elm_Theme *theme = elm_theme_new();
- elm_theme_ref_set(theme, NULL);
- elm_theme_extension_add(theme, EDJ_FILE);
-
- Evas_Object *ctxpopup = elm_ctxpopup_add(_guide_popup_window);
- elm_object_theme_set(ctxpopup, theme);
-
int rotation = elm_win_rotation_get(NATIVE_WINDOW_CAST(ime_get_main_window()));
if (rotation == 0 || rotation == 180) {
elm_object_style_set(ctxpopup, "customised_guideline_popup");
elm_object_style_set(ctxpopup, "customised_guideline_popup_landscape");
}
- evas_object_smart_callback_add(ctxpopup, "dismissed", _guideline_popup_dismissed_cb, (void *)keyEvent);
elm_ctxpopup_direction_priority_set(ctxpopup, ELM_CTXPOPUP_DIRECTION_UP,
ELM_CTXPOPUP_DIRECTION_UNKNOWN,
ELM_CTXPOPUP_DIRECTION_UNKNOWN,
elm_label_line_wrap_set(text, ELM_WRAP_MIXED);
evas_object_show(text);
- evas_object_layer_set(_guide_popup_window, EVAS_LAYER_MAX);
- evas_object_show(_guide_popup_window);
+ if (keyEvent == MVK_space) {
+ evas_object_layer_set(_guide_popup_space, EVAS_LAYER_MAX);
+ evas_object_show(_guide_popup_space);
+ } else {
+ evas_object_layer_set(_guide_popup_setting, EVAS_LAYER_MAX);
+ evas_object_show(_guide_popup_setting);
+ }
+
evas_object_layer_set(ctxpopup, EVAS_LAYER_MAX);
evas_object_show(ctxpopup);
}
SCLEventReturnType CUIEventCallback::on_event_drag_state_changed(SclUIEventDesc event_desc)
{
+ LOGD("button %s is clicked\n", event_desc.key_value);
if (event_desc.event_type == EVENT_TYPE_MOVE) {
if (event_desc.key_event == MVK_space) {
SclRectangle rectangle = {0};
ime_set_floating_drag_end();
} else if (event_desc.event_type == EVENT_TYPE_PRESS) {
#ifdef _MOBILE
- if ((!g_config_values.first_guideset) && (event_desc.key_type == KEY_TYPE_MODECHANGE)) {
- ise_show_help_popup(event_desc.key_event);
+ if ((!g_config_values.first_guideset) && (strncmp(event_desc.key_value, "OPTION", strlen(event_desc.key_value)) == 0)) {
+ ise_show_help_popup(event_desc.key_event);//show help popup in on_event_drag_state_changed other than on_event_key_clicked for fixing help popup show delay issue
+ LOGD("setting popup show\n");
return SCL_EVENT_PASS_ON;
+ } else {
+ ise_destory_popup_setting();//destory popup manually in case of abormal situation
}
#endif
if (g_floating_mode && event_desc.mouse_current_point.y <= FLOATING_TITLE_BAR_HEIGHT
}
case KEY_TYPE_MODECHANGE:
#ifdef _MOBILE
- if (!g_config_values.first_guideset) {
- break;
+ if (_guide_popup_setting != NULL) {//popup is showing
+ break;
}
#endif
if (strcmp(event_desc.key_value, USER_VOICE_LANGUAGE) == 0) {
return ret;
}
-#ifdef _MOBILE
-static Eina_Bool popup_guideline_timer_cb(void *data)
-{
- if ((!g_config_values.first_guidechange) && (_language_manager.get_enabled_languages_num() > 1)) {
- ise_show_help_popup(MVK_space);
- g_config_values.first_guidechange = TRUE;
- write_ise_config_values();
- }
-
- guideline_timer = NULL;
- return ECORE_CALLBACK_CANCEL;
-}
-#endif
-
#if EXIT_ISE_ON_HIDE
static Eina_Bool exit_timer_cb(void *data)
{
#ifdef _MOBILE
if (ise_is_guideline_popup_enable_layout()) {
- guideline_timer = ecore_timer_add(0.1, popup_guideline_timer_cb, NULL);
+ if ((!g_config_values.first_guidechange) && (_language_manager.get_enabled_languages_num() > 1)) {
+ ise_show_help_popup(MVK_space);
+ LOGD("space popup show\n");
+ } else {
+ ise_destory_popup_space();
+ }
}
#endif
_click_count = 0;
delete_commit_timer();
- ise_destory_guideline_popup();
+ ise_destory_popup_space();
+ ise_destory_popup_setting();
g_keyboard_state.visible_state = FALSE;