← Back to team overview

kicad-developers team mailing list archive

Re: HotKey user model


Le 26/04/2019 à 19:21, Jeff Young a écrit :
> I’ve been talking to Wayne about the ‘W’ and ‘X’ hotkeys.  It appears the design goal is to have these be immediate actions (that is, they start a wire or a track, rather than just selecting the wire or track tool).
> Presumably this would then also apply to ‘A’, ‘P’, ‘L’, ‘H’, ‘J’, ‘Q’, etc.  (None of these perform an immediate action today, right?)

In short: Yes. This is how the hotkeys worked, previously.
> Do we want there to be some related way to select the tools?  That is, if ‘Q’ places a no-connect then shift-Q would select the no-connect tool?  If yes, would these be separately editable, or would they simply follow whatever the user changed the main hotkeys to?
> Or is there some other facility that’s already supposed to work for tools?

Why do you want to change the previous behavior? Is it not good?

The reason of the behavior ('W' starts a wire and 'shift W' selects the
tool) is the fact we cannot (if we use the hotkey as accelerator) know
if a menu was clicked (in this case the mouse position is irrelevant) or
if a hotkey was pressed (in this case the mouse position can be used and
we start a wire immediately).
Therefore we cannot use the same key as hotkey and accelerator key.

It is extremely hard to fix this issue because the workaround to fix it
are only workaround (and therefore can stop working after wxWidgets
changes) and each platform has its own workaround.

For instance, if the 'W' key is used both as accelerator key and hotkey,
the key event is not generated on Windows (only the menu event), but is
generated on wxGTK.
I don't know what happens on OSX.

Hotkey behavior versus accelerator key behavior is always strange.
And this is not only when using wxWidgets:
I found issues in many other applications (Using a French keyboard
instead of a US keyboard often shows these strange behaviors)

Trying to fix this issue is a mined field.

Wayne and me spent a lot of time about that without success.

Jean-Pierre CHARRAS

Follow ups