Clear marked text when text is inserted

This is apparently what Cocoa expects. Fixes committing pre-edit text no
longer working.
This commit is contained in:
Kovid Goyal 2021-11-11 22:35:02 +05:30
parent bd4ed38a3c
commit f34cc1861a
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -1524,6 +1524,7 @@ void _glfwPlatformUpdateIMEState(_GLFWwindow *w, const GLFWIMEUpdateEvent *ev) {
{ {
const char *utf8 = polymorphic_string_as_utf8(string); const char *utf8 = polymorphic_string_as_utf8(string);
debug_key("\n\tinsertText: %s replacementRange: (%lu, %lu)\n", utf8, replacementRange.location, replacementRange.length); 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 // insertText can be called multiple times for a single key event
char *s = _glfw.ns.text + strnlen(_glfw.ns.text, sizeof(_glfw.ns.text)); 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); snprintf(s, sizeof(_glfw.ns.text) - (s - _glfw.ns.text), "%s", utf8);