Oh, got it. It's nice that it's mirrored on Github because it's easy for me to fork and push changes to the forked repository.
I hope the attached patch is formatted correctly enough? Here is what it does, touching several files:
- Remove unused dnm_sanitize_key_event () prototype
- Remove dnm_clean_event () altogether, and combine logic into
dnm_sanitize_key_state (), which just returned event->state
if (!Denemo.prefs.strictshortcuts)
- Remove all calls to dnm_clean_event (); replace by
dnm_sanitize_key_state ()
- Implement portable logic to always take as command input the "level 0"
unmodified value of a key, passing event->hardware_keycode to
gdk_keymap_get_entries_for_keycode() and grabbing the first keyval in
the returned array regardless of modifier keys. See GDK docs here:
https://developer.gnome.org/gdk3/stable/gdk3-Keyboard-Handling.html#gdk-keymap-get-entries-for-keycode