From f34cc1861a3207dd534e75e89a0f7c2f1faabf7e Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 11 Nov 2021 22:35:02 +0530 Subject: [PATCH] Clear marked text when text is inserted This is apparently what Cocoa expects. Fixes committing pre-edit text no longer working. --- glfw/cocoa_window.m | 1 + 1 file changed, 1 insertion(+) diff --git a/glfw/cocoa_window.m b/glfw/cocoa_window.m index c26ba9d56..1d84395c1 100644 --- a/glfw/cocoa_window.m +++ b/glfw/cocoa_window.m @@ -1524,6 +1524,7 @@ void _glfwPlatformUpdateIMEState(_GLFWwindow *w, const GLFWIMEUpdateEvent *ev) { { const char *utf8 = polymorphic_string_as_utf8(string); debug_key("\n\tinsertText: %s replacementRange: (%lu, %lu)\n", utf8, replacementRange.location, replacementRange.length); + if ([self hasMarkedText]) [self unmarkText]; // insertText can be called multiple times for a single key event char *s = _glfw.ns.text + strnlen(_glfw.ns.text, sizeof(_glfw.ns.text)); snprintf(s, sizeof(_glfw.ns.text) - (s - _glfw.ns.text), "%s", utf8);