{
SCIM_DEBUG_MAIN (3) << __FUNCTION__ << "...\n";
- if (_launch_ise_on_request && _auto_destroy_ise && _soft_keyboard_launched) {
- String uuid = _info_manager->get_current_helper_uuid ();
-
- if (uuid.length () > 0) {
- _info_manager->hide_helper (uuid);
- _info_manager->stop_helper (uuid);
- _soft_keyboard_launched = false;
- LOGD ("stop helper (%s)", uuid.c_str ());
+ if (_soft_keyboard_launched) {
+ if (_launch_ise_on_request && _auto_destroy_ise) {
+ String uuid = _info_manager->get_current_helper_uuid ();
+
+ if (uuid.length () > 0) {
+ _info_manager->hide_helper (uuid);
+ _info_manager->stop_helper (uuid);
+ _soft_keyboard_launched = false;
+ LOGD ("stop helper (%s)", uuid.c_str ());
+ }
}
+ _soft_keyboard_launched = false;
}
}
m_helper_client_index.erase (uuid);
m_helper_info_repository.erase (hiit);
+ m_signal_stop_default_ise ();
+
bool launch_ise_on_request = false;
launch_ise_on_request = scim_global_config_read (String (SCIM_GLOBAL_CONFIG_LAUNCH_ISE_ON_REQUEST), launch_ise_on_request);
if (restart && !m_ise_exiting && !launch_ise_on_request) {