/LockScreenClassName = LOCK_SCREEN, hub-idlescreen
/LaunchRemoteInput = true
/LaunchWebServer = true
+/EnableAutoRestartIse = true
\ No newline at end of file
static bool _auto_destroy_ise = false;
static bool _soft_keyboard_launched = false;
static bool _focus_in = false;
+static bool _enable_auto_restart = true;
#if ISF_BUILD_CANDIDATE_UI
static bool candidate_expanded = false;
}
_launch_ise_on_request = scim_global_config_read (String (SCIM_GLOBAL_CONFIG_LAUNCH_ISE_ON_REQUEST), _launch_ise_on_request);
_auto_destroy_ise = scim_global_config_read (String (SCIM_GLOBAL_CONFIG_ENABLE_AUTO_DESTROY_ISE), _auto_destroy_ise);
+ _enable_auto_restart = scim_global_config_read (String (SCIM_GLOBAL_CONFIG_ENABLE_AUTO_RESTART_ISE), _enable_auto_restart);
isf_load_ise_information (ALL_ISE, _config);
}
if (STATUS_DYING == aul_app_get_status (uuid.c_str ()))
pid = -1;
}
- if (_launch_ise_on_request && !_soft_keyboard_launched && pid < 0) {
+ if ((_launch_ise_on_request || !_enable_auto_restart) && !_soft_keyboard_launched && pid < 0) {
LOGD ("Start helper (%s)", uuid.c_str ());
set_keyboard_engine (String (SCIM_COMPOSE_KEY_FACTORY_UUID));
m_signal_show_ise ();
} else {
bool launch_ise_on_request = scim_global_config_read (String (SCIM_GLOBAL_CONFIG_LAUNCH_ISE_ON_REQUEST), false);
- if (launch_ise_on_request)
+ bool enable_auto_restart = scim_global_config_read (String (SCIM_GLOBAL_CONFIG_ENABLE_AUTO_RESTART_ISE), true);
+ if (launch_ise_on_request || !enable_auto_restart)
m_signal_start_default_ise ();
}
}
HelperInfoRepository::iterator hiit = m_helper_info_repository.find (client_id);
bool launch_ise_on_request = scim_global_config_read (String (SCIM_GLOBAL_CONFIG_LAUNCH_ISE_ON_REQUEST), false);
+ bool enable_auto_restart = scim_global_config_read (String (SCIM_GLOBAL_CONFIG_ENABLE_AUTO_RESTART_ISE), true);
if (hiit != m_helper_info_repository.end ()) {
bool restart = false;
String uuid = hiit->second.uuid;
m_signal_stop_default_ise (false);
- if (m_refocus_needed || m_reshow_needed || !launch_ise_on_request)
+ if ((m_refocus_needed || m_reshow_needed || !launch_ise_on_request) && enable_auto_restart)
m_restart_needed = true;
if (restart && !m_ise_exiting && m_restart_needed) {
#define SCIM_GLOBAL_CONFIG_LOCK_SCREEN_CLASS_NAME "/LockScreenClassName"
#define SCIM_GLOBAL_CONFIG_LAUNCH_WEB_SERVER "/LaunchWebServer"
#define SCIM_GLOBAL_CONFIG_QUICK_PANEL_ICON_PATH "/QuickpanelIconPath"
+#define SCIM_GLOBAL_CONFIG_ENABLE_AUTO_RESTART_ISE "/EnableAutoRestartIse"
#define ISF_CONFIG_HARDWARE_KEYBOARD_DETECT "/isf/hw_keyboard_detect"