static void slot_start_default_ise (void)
{
SCIM_DEBUG_MAIN (3) << __FUNCTION__ << "...\n";
- if ((_info_manager->get_current_toolbar_mode () == TOOLBAR_HELPER_MODE)) {
- if (_launch_ise_on_request && !_soft_keyboard_launched) {
- String uuid = _config->read (SCIM_CONFIG_DEFAULT_HELPER_ISE, String (""));
+ if ((_info_manager->get_current_toolbar_mode () == TOOLBAR_HELPER_MODE)) {
+ String uuid = _config->read (SCIM_CONFIG_DEFAULT_HELPER_ISE, String (""));
+ int pid = aul_app_get_pid (uuid.c_str ());
+ if (_launch_ise_on_request && !_soft_keyboard_launched && pid < 0) {
LOGD ("Start helper (%s)", uuid.c_str ());
-
set_keyboard_engine (String (SCIM_COMPOSE_KEY_FACTORY_UUID));
+
if (_info_manager->start_helper (uuid))
_soft_keyboard_launched = true;
else
static struct _wl_im *_wl_im_ctx = NULL;
static int _ecore_wl2_init_count = 0;
-static bool _destroy_ise = false;
+static bool _launch_ise_on_request = false;
#define WAYLAND_MODULE_CLIENT_ID (0)
#define MAX_PREEDIT_BUFSIZE 4000
_wl_im_ctx->need_focus_event = EINA_FALSE;
}
- if (_destroy_ise)
+ if (_launch_ise_on_request)
wl_im_destroy ();
}
_panel_client_id = WAYLAND_MODULE_CLIENT_ID;
g_info_manager->register_panel_client (_panel_client_id, _panel_client_id);
WSCContextISF* context_scim = _ic_list;
- _destroy_ise = scim_global_config_read (String (SCIM_GLOBAL_CONFIG_ENABLE_AUTO_DESTROY_ISE), _destroy_ise);
+ _launch_ise_on_request = scim_global_config_read (String (SCIM_GLOBAL_CONFIG_LAUNCH_ISE_ON_REQUEST), false);
while (context_scim != NULL) {
//FIXME:modify the parameter
if (ret) {
m_signal_show_ise ();
} else {
- m_signal_start_default_ise ();
+ bool launch_ise_on_request = scim_global_config_read (String (SCIM_GLOBAL_CONFIG_LAUNCH_ISE_ON_REQUEST), false);
+ if (launch_ise_on_request)
+ m_signal_start_default_ise ();
}
}
unlock ();
bool launch_ise_on_request = scim_global_config_read (String (SCIM_GLOBAL_CONFIG_LAUNCH_ISE_ON_REQUEST), false);
- if (!m_ise_exiting && launch_ise_on_request) {
- m_ise_exiting = true;
+ if (launch_ise_on_request)
m_signal_start_default_ise ();
- }
}
//SCIM_TRANS_CMD_FOCUS_OUT