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

David

On Wed, Jul 1, 2020 at 11:56 AM Richard Shann <[email protected]>
wrote:

> On Wed, 2020-07-01 at 10:55 -0500, David Richmond wrote:
> > On a separate thread, Richard and I were discussing problems with the
> > keyboard shortcuts on MacOS.
> >
> > I did a little digging, and it seems that this issue of hardware
> > keycodes is not even platform-independent on Linux: https://www.berra
> > nge.com/tags/key-codes/
> >
> > So, I replaced the direct keycode logic in dnm_clean_event () with a
> > GDK call that pulls out what GDK calls the "first level" for a given
> > hardware code. We can just pass the hardware code from the key event
> > to get it. That gives us back, for example, lowercase letters instead
> > of uppercase with shift, and numbers on the top-row number keys
> > instead of, e.g., the parentheses.
> >
> > I opened a pull request on github with the relevant changes.
>
> I didn't know of the existence of this github repository - Denemo's
> official repository is on Savannah(*) - this one seems to mirror it.
> Could you send a patch with the changes you have? I can then test it on
> GNU/Linux and Windows (an ancient Vista laptop someone gave me, but it
> seems to be ok as a proxy for modern windows machines).
>
> Richard
> (*)
> http://git.savannah.gnu.org/gitweb/?p=denemo.git;a=summary
>
>

Attachment: portable-keys.patch
Description: Binary data

Reply via email to