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);