From 4f2d67d8f3239828e9370b24ff1400b565d6118d Mon Sep 17 00:00:00 2001 From: Tim Culverhouse Date: Thu, 28 Sep 2023 10:12:43 -0500 Subject: [PATCH] gtk(input): fix value used for lowercase lower_unicode When converting keyval to the unshifted version, gdk_keyval_to_lower returns a keyval type, not a unicode value. Convert this to unicode before assigning to keyval_unicode_unshifted. This fixes a bug where the incorrect keycode is sent in alternate layouts with kitty keyboard on linux. --- src/apprt/gtk/Surface.zig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/apprt/gtk/Surface.zig b/src/apprt/gtk/Surface.zig index 09aa6206a..50a88401e 100644 --- a/src/apprt/gtk/Surface.zig +++ b/src/apprt/gtk/Surface.zig @@ -757,8 +757,8 @@ fn keyEvent( // Norwegian, and French layouts and thats what we have real users for // right now. const lower = c.gdk_keyval_to_lower(keyval); - if (std.math.cast(u21, lower)) |val| break :unshifted val; - break :unshifted 0; + const lower_unicode = c.gdk_keyval_to_unicode(lower); + break :unshifted std.math.cast(u21, lower_unicode) orelse 0; }; // We always reset our committed text when ending a keypress so that