From 7321eb33209a35ef9c8fd62695fc5b50fa42cf1a Mon Sep 17 00:00:00 2001 From: Gutawer Date: Wed, 25 Jan 2023 17:04:25 +0000 Subject: [PATCH] Gtk: Fix some keys not being usable with modifiers --- gtk/src/gtk_binding.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/gtk/src/gtk_binding.cpp b/gtk/src/gtk_binding.cpp index 51241d5e..aa978662 100644 --- a/gtk/src/gtk_binding.cpp +++ b/gtk/src/gtk_binding.cpp @@ -17,7 +17,22 @@ Binding::Binding() Binding::Binding(GdkEventKey *event) { - event->keyval = gdk_keyval_to_lower(event->keyval); + GdkKeymapKey* keys; + guint* keyvals; + int n_entries; + + gdk_keymap_get_entries_for_keycode( + gdk_keymap_get_for_display(top_level->window->get_display()->gobj()), + event->hardware_keycode, + &keys, + &keyvals, + &n_entries + ); + event->keyval = keyvals[0]; + + g_free(keys); + g_free(keyvals); + value = BINDING_KEY | (event->keyval & BINDING_KEY_MASK); /* Strip modifiers from modifiers */