From 088b7cde4f96e70b84728c07a1a9407e02067720 Mon Sep 17 00:00:00 2001 From: pagedown Date: Sun, 28 Nov 2021 23:09:35 +0800 Subject: [PATCH] Update IME status when window lost focus --- glfw/cocoa_window.m | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/glfw/cocoa_window.m b/glfw/cocoa_window.m index 97ee504b6..01badaf4e 100644 --- a/glfw/cocoa_window.m +++ b/glfw/cocoa_window.m @@ -864,6 +864,12 @@ static const NSRange kEmptyRange = { NSNotFound, 0 }; showCursor(window); _glfwInputWindowFocus(window, false); + // IME is cancelled when losing the focus + if ([window->ns.view hasMarkedText]) { + [window->ns.view unmarkText]; + GLFWkeyevent dummy = {.action = GLFW_RELEASE, .ime_state = GLFW_IME_PREEDIT_CHANGED}; + _glfwInputKeyboard(window, &dummy); + } } - (void)windowDidChangeScreen:(NSNotification *)notification