aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/managers/input/TextInput.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/managers/input/TextInput.cpp b/src/managers/input/TextInput.cpp
index 711935a7..de14f1ab 100644
--- a/src/managers/input/TextInput.cpp
+++ b/src/managers/input/TextInput.cpp
@@ -23,8 +23,9 @@ void CTextInput::initCallbacks() {
listeners.disable = INPUT->events.disable.registerListener([this](std::any p) { onDisabled(); });
listeners.commit = INPUT->events.onCommit.registerListener([this](std::any p) { onCommit(); });
listeners.destroy = INPUT->events.destroy.registerListener([this](std::any p) {
- g_pInputManager->m_sIMERelay.deactivateIME(this);
g_pInputManager->m_sIMERelay.removeTextInput(this);
+ if (!g_pInputManager->m_sIMERelay.getFocusedTextInput())
+ g_pInputManager->m_sIMERelay.deactivateIME(this);
});
} else {
const auto INPUT = pV1Input.lock();
@@ -38,8 +39,9 @@ void CTextInput::initCallbacks() {
listeners.destroy = INPUT->events.destroy.registerListener([this](std::any p) {
listeners.surfaceUnmap.reset();
listeners.surfaceDestroy.reset();
- g_pInputManager->m_sIMERelay.deactivateIME(this);
g_pInputManager->m_sIMERelay.removeTextInput(this);
+ if (!g_pInputManager->m_sIMERelay.getFocusedTextInput())
+ g_pInputManager->m_sIMERelay.deactivateIME(this);
});
}
}