#define ISF_SYSTEM_APPSERVICE_READY_STATE 1
#define ISF_SYSTEM_WM_WAIT_COUNT 200
#define ISF_SYSTEM_WAIT_DELAY 100 * 1000
-#define ISF_CANDIDATE_DESTROY_DELAY 0.2
+#define ISF_CANDIDATE_DESTROY_DELAY 3
#define ISF_PREEDIT_BORDER 16
static void candidate_window_hide (void)
{
+ SCIM_DEBUG_MAIN (3) << __FUNCTION__ << "\n";
+
delete_candidate_hide_timer ();
_candidate_state = WINDOW_STATE_HIDE;
- LOGD ("evas_object_hide (_candidate_window, %p)\n", elm_win_xwindow_get ( _candidate_window));
+ LOGD ("evas_object_hide (_candidate_window, %p)\n", elm_win_xwindow_get (_candidate_window));
+
+ if (_candidate_window) {
+ evas_object_hide (_candidate_area_1);
+ evas_object_hide (_more_btn);
- if (_candidate_window)
evas_object_hide (_candidate_window);
+ SCIM_DEBUG_MAIN (3) << " Hide candidate window\n";
+ }
}
/**
_candidate_state = WINDOW_STATE_SHOW;
/* Update the geometry information for auto scrolling */
- set_keyboard_geometry_atom_info(_app_window, get_ise_geometry ());
+ set_keyboard_geometry_atom_info (_app_window, get_ise_geometry ());
_panel_agent->update_input_panel_event (ECORE_IMF_INPUT_PANEL_GEOMETRY_EVENT, 0);
_panel_agent->update_input_panel_event (ECORE_IMF_CANDIDATE_PANEL_GEOMETRY_EVENT, 0);
}
}
- delete_candidate_show_handler();
- _candidate_show_handler = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_SHOW, x_event_window_show_cb, NULL);
+ delete_candidate_show_handler ();
+ _candidate_show_handler = ecore_event_handler_add (ECORE_X_EVENT_WINDOW_SHOW, x_event_window_show_cb, NULL);
evas_object_show (_candidate_window);
}
*/
static void ui_candidate_hide (bool bForce, bool bSetVirtualKbd, bool will_hide)
{
- SCIM_DEBUG_MAIN (3) << __FUNCTION__ << "...\n";
+ SCIM_DEBUG_MAIN (3) << __FUNCTION__ << " bForce:" << bForce << " bSetVirtualKbd:" << bSetVirtualKbd << " will_hide:" << will_hide << "...\n";
_candidate_window_pending = false;
if (!_candidate_window)
return;
_candidate_state = WINDOW_STATE_WILL_HIDE;
delete_candidate_hide_timer ();
- _candidate_hide_timer = ecore_timer_add (1.0, candidate_hide_timer, NULL);
+ _candidate_hide_timer = ecore_timer_add (2.0, candidate_hide_timer, NULL);
}
_panel_agent->update_candidate_panel_event ((uint32)ECORE_IMF_CANDIDATE_PANEL_STATE_EVENT, (uint32)ECORE_IMF_CANDIDATE_PANEL_HIDE);
}
}
- SCIM_DEBUG_MAIN (3) << " Hide candidate window\n";
-
if (!will_hide) {
/* If we are not in will_hide state, hide the candidate window immediately */
candidate_window_hide ();
_panel_agent->update_candidate_panel_event ((uint32)ECORE_IMF_CANDIDATE_PANEL_GEOMETRY_EVENT, 0);
}
}
-
- if (_candidate_state != WINDOW_STATE_SHOW && _candidate_state != WINDOW_STATE_WILL_SHOW)
- ui_candidate_hide (false);
}
//////////////////////////////////////////////////////////////////////
return;
}
- if (!_candidate_area_1)
+ if (!_candidate_area_1 || _candidate_state == WINDOW_STATE_WILL_HIDE)
return;
if (evas_object_visible_get (_candidate_area_1) || evas_object_visible_get (_candidate_area_2)) {
+ bool bForce = false;
if (evas_object_visible_get (_candidate_area_1)) {
- evas_object_hide (_candidate_area_1);
- evas_object_hide (_more_btn);
+ if (evas_object_visible_get (_aux_area)) {
+ evas_object_hide (_candidate_area_1);
+ evas_object_hide (_more_btn);
+ } else {
+ bForce = true;
+ }
}
if (evas_object_visible_get (_candidate_area_2)) {
evas_object_hide (_candidate_area_2);
}
ui_candidate_window_adjust ();
- ui_candidate_hide (false, true, true);
+ ui_candidate_hide (bForce, true, true);
ui_settle_candidate_window ();
}
static void slot_candidate_will_hide_ack (void)
{
+ SCIM_DEBUG_MAIN (3) << __FUNCTION__ << "...\n";
+
LOGD ("candidate_will_hide_ack");
if (_candidate_state == WINDOW_STATE_WILL_HIDE) {
candidate_window_hide ();
case WINDOW_STATE_HIDE :
state = ECORE_IMF_INPUT_PANEL_STATE_HIDE;
break;
+ default :
+ state = ECORE_IMF_INPUT_PANEL_STATE_HIDE;
};
}
LOGD ("state = %d", state);
+ SCIM_DEBUG_MAIN (3) << __FUNCTION__ << " state = " << state << "\n";
}
//////////////////////////////////////////////////////////////////////