← Back to team overview

kicad-developers team mailing list archive

Tool processing & RunHotKey return


In the tool dispatcher currently, if any action is associated with a key
combination (even if the action is not handled by any active tools) then a
key event with that combination will not progress further than the
dispatchHotKey function in the dispatcher. For instance, this means that
the letter 'B' will not make it into any of the dispatchInternal calls
inside any program (e.g. eeschema, pleditor, cvpcb, etc.) because it is
assigned to a pcbnew action to refill the zones, even when those other
programs do not use that action at all so it goes unhandled in the
dispatchHotkey function. That event therefore is inaccessible in any tool
loops that may be running.

Is there a reason the dispatchHotkey logic looks only at the fact an action
with that hotkey exists rather than if any tool has handled the associated
action? For my work in cvpcb it would be better if it were the latter, so
that any key events not handled by the tools continue processing (e.g. for
down/up/left/right keys, single letter keys, etc.). It should be possible
to know if the action is handled by the hotkey handler, since they actions
are spawned immediately and the handled return value is then available.

Would a change to this system break any of the existing tool loops? e.g.,
are any unable to cope with receiving key pressed events (I don't think any
would be problematic, since some keys such as 'C' don't have an associated
action and would therefore generate key pressed events in them)?


Follow ups