I fully agree with you here, Martin.

-andy



From: Martin Fox <mar...@martinfox.com>
Date: Thursday, October 12, 2023 at 09:31
To: Andy Goryachev <andy.goryac...@oracle.com>
Cc: John Hendrikx <john.hendr...@gmail.com>, openjfx-dev@openjdk.org 
<openjfx-dev@openjdk.org>
Subject: Re: [External] : Re: [Request for Comments] Behavior / InputMap
Andy,


Speaking of the platform nuances – this might be relevant to the ongoing 
platform API discussion.  Right now FX picks up nothing from the preferences 
set by the user within the OS.  You are right, macOS allows the user to change 
key modifiers (for example, switch control and command keys, Settings -> 
Keyboard -> Keyboard Shortcuts -> Modifier Keys) and FX remains oblivious to 
this change.

Those changes happen at a low level in the OS and are transparent to JavaFX. 
There’s nothing we need to do there.

We can’t directly query the OS to find a binding like, say, Shift + RIGHT => 
“moveRight:”. The default mappings are well-established so just re-implementing 
them is fine. A super power user can alter these bindings by editing a text 
file and unless we go parse that text file we won’t honor those changes. But 
that file might contain bindings we can never map (like multi-character 
Emacs-style sequences) so there’s no guarantee that we can honor their bindings 
anyway.

A regular old power user (rather than a super power user) would probably use 
something like Karabiner which remaps things at a low level that’s transparent 
to us.

TL;DR not a bad idea to honor the platform key bindings but it would be 
nightmare to test and implement and benefit a very small number of super power 
users.

Martin

Reply via email to