Fix issue not to terminate IME incorrectly in on-demand launch mode 15/246915/1
authorInHong Han <inhong1.han@samsung.com>
Thu, 5 Nov 2020 06:36:51 +0000 (15:36 +0900)
committerInHong Han <inhong1.han@samsung.com>
Thu, 5 Nov 2020 07:18:14 +0000 (07:18 +0000)
Change-Id: I02af80e62dbed138c2b76188cff85f4581dd3bc5

ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp
ism/src/isf_info_manager.cpp
ism/src/isf_info_manager.h

index 823f872..eebb2cf 100644 (file)
@@ -889,6 +889,7 @@ _wsc_im_destroy (void *data, struct wl_input_method *input_method, struct wl_inp
     _wl_im_ctx->im_ctx = im_ctx;
 
     wl_im_destroy ();
+    g_info_manager->request_ise_terminate();
 }
 
 static void
index e980e27..bd728b2 100644 (file)
@@ -2296,6 +2296,13 @@ public:
         }
     }
 
+    void request_ise_terminate () {
+        if (m_client_context_uuids.size () == 0) {
+            LOGD("Request to terminate IME");
+            m_signal_stop_default_ise (true);
+        }
+    }
+
     Connection signal_connect_turn_on (InfoManagerSlotVoid*                slot) {
         return m_signal_turn_on.connect (slot);
     }
@@ -2661,9 +2668,6 @@ public:
             m_last_context_uuid   = String ("");
             unlock ();
         }
-
-        if (m_client_context_uuids.size () == 0)
-            m_signal_stop_default_ise (true);
     }
 
     //SCIM_TRANS_CMD_PANEL_RESET_INPUT_CONTEXT
@@ -5524,6 +5528,11 @@ void InfoManager::reshow_input_panel ()
     m_impl->reshow_input_panel ();
 }
 
+void InfoManager::request_ise_terminate ()
+{
+    m_impl->request_ise_terminate ();
+}
+
 //////////////////////////////////Message function end/////////////////////////////////////////
 
 Connection
index 88751fa..ec27d1c 100644 (file)
@@ -992,6 +992,8 @@ public:
 
     void set_prediction_allow (int client, bool mode);
 
+    void request_ise_terminate (void);
+
 //////////////////////////////////Message function end/////////////////////////////////////////