From: InHong Han Date: Tue, 4 Sep 2018 09:24:11 +0000 (+0900) Subject: Add signal, slot to Infomanager for restarting IME in on-demand mode X-Git-Tag: accepted/tizen/5.0/unified/20181102.023431~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=cf259860558a800b786b1f5dc2dab8781bd51289;p=platform%2Fcore%2Fuifw%2Fisf.git Add signal, slot to Infomanager for restarting IME in on-demand mode isf_panel_efl doesn't know the status of the IME. Change-Id: I4cb075419ab727769e0c99138686d2d24c8d192d --- diff --git a/ism/extras/efl_panel/isf_panel_efl.cpp b/ism/extras/efl_panel/isf_panel_efl.cpp index aba7af4..de92774 100644 --- a/ism/extras/efl_panel/isf_panel_efl.cpp +++ b/ism/extras/efl_panel/isf_panel_efl.cpp @@ -262,7 +262,7 @@ static void slot_candidate_will_hide_ack (void); 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); @@ -6509,19 +6509,24 @@ static void slot_start_default_ise (void) } } -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; } } diff --git a/ism/src/isf_info_manager.cpp b/ism/src/isf_info_manager.cpp index 1fab5b7..1fb3fc6 100644 --- a/ism/src/isf_info_manager.cpp +++ b/ism/src/isf_info_manager.cpp @@ -185,6 +185,9 @@ InfoManagerSignalIntString2; typedef Signal1 InfoManagerSignalBoolString; +typedef Signal1 +InfoManagerSignalBool; + struct HelperClientStub { int id; int ref; @@ -322,7 +325,7 @@ class InfoManager::InfoManagerImpl 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; @@ -2320,7 +2323,7 @@ public: 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); } @@ -2655,7 +2658,7 @@ public: } 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 @@ -2902,7 +2905,7 @@ public: 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; @@ -5558,7 +5561,7 @@ InfoManager::signal_connect_start_default_ise (InfoManagerSlotVoid* } 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); } diff --git a/ism/src/isf_info_manager.h b/ism/src/isf_info_manager.h index 24531e2..54b3851 100644 --- a/ism/src/isf_info_manager.h +++ b/ism/src/isf_info_manager.h @@ -193,6 +193,9 @@ InfoManagerSlotIntString2; typedef Slot1 InfoManagerSlotBoolString; +typedef Slot1 +InfoManagerSlotBool; + /** * @brief The class to implement all socket protocol in Panel. * @@ -1053,9 +1056,9 @@ public: /** * @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.