isf_panel_efl doesn't know the status of the IME.
Change-Id: I4cb075419ab727769e0c99138686d2d24c8d192d
static void slot_set_keyboard_mode (int mode);
static void slot_get_ise_state (int &state);
static void slot_start_default_ise (void);
-static void slot_stop_default_ise (void);
+static void slot_stop_default_ise (bool is_exist);
static void slot_run_helper (const String &uuid, const String &config, const String &display);
static bool slot_launch_option_application (String ime_appid);
}
}
-static void slot_stop_default_ise (void)
+static void slot_stop_default_ise (bool is_exist)
{
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 (is_exist) {
+ 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 (uuid.length () > 0) {
+ _info_manager->hide_helper (uuid);
+ _info_manager->stop_helper (uuid);
+ _soft_keyboard_launched = false;
+ LOGD ("stop helper (%s)", uuid.c_str ());
+ }
}
+ } else {
+ if (_soft_keyboard_launched)
+ _soft_keyboard_launched = false;
}
}
typedef Signal1<bool, String>
InfoManagerSignalBoolString;
+typedef Signal1<void, bool>
+InfoManagerSignalBool;
+
struct HelperClientStub {
int id;
int ref;
InfoManagerSignalIntIntInt m_signal_update_spot_location;
InfoManagerSignalFactoryInfo m_signal_update_factory_info;
InfoManagerSignalVoid m_signal_start_default_ise;
- InfoManagerSignalVoid m_signal_stop_default_ise;
+ InfoManagerSignalBool m_signal_stop_default_ise;
InfoManagerSignalIntInt m_signal_update_input_context;
InfoManagerSignalString m_signal_update_language_locale;
InfoManagerSignalIntInt m_signal_set_candidate_ui;
return m_signal_start_default_ise.connect (slot);
}
- Connection signal_connect_stop_default_ise (InfoManagerSlotVoid* slot) {
+ Connection signal_connect_stop_default_ise (InfoManagerSlotBool* slot) {
return m_signal_stop_default_ise.connect (slot);
}
}
if (m_client_context_uuids.size () == 0)
- m_signal_stop_default_ise ();
+ m_signal_stop_default_ise (true);
}
//SCIM_TRANS_CMD_PANEL_RESET_INPUT_CONTEXT
m_helper_client_index.erase (uuid);
m_helper_info_repository.erase (hiit);
- m_signal_stop_default_ise ();
+ m_signal_stop_default_ise (false);
if (m_refocus_needed || m_reshow_needed)
m_restart_needed = true;
}
Connection
-InfoManager::signal_connect_stop_default_ise (InfoManagerSlotVoid* slot)
+InfoManager::signal_connect_stop_default_ise (InfoManagerSlotBool* slot)
{
return m_impl->signal_connect_stop_default_ise (slot);
}
typedef Slot1<bool, String>
InfoManagerSlotBoolString;
+typedef Slot1<void, bool>
+InfoManagerSlotBool;
+
/**
* @brief The class to implement all socket protocol in Panel.
*
/**
* @brief Signal: stop default ise.
*
- * slot prototype: void stop_default_ise (void);
+ * slot prototype: void stop_default_ise (bool);
*/
- Connection signal_connect_stop_default_ise (InfoManagerSlotVoid* slot);
+ Connection signal_connect_stop_default_ise (InfoManagerSlotBool* slot);
/**
* @brief Signal: Get the list of keyboard ise name.