Hi Orson, Thanks for the idea - seems like that could be a fairly flexible way to generalise action shortcuts.
Perhaps such a refactor would be better after the hotkeys aren't synced with legacy, though. Cheers, John On Fri, Nov 23, 2018 at 8:58 AM Maciej Sumiński <[email protected]> wrote: > > Hi John, > > One possible way of solving the problem is to change the m_defaultHotkey > in TOOL_ACTION class to a TOOL_EVENT field which says what triggers the > action. Then ACTION_MANAGER instead of comparing hotkeys should run > TOOL_EVENT::Matches() to check whether a processed TOOL_EVENT is > supposed to fire an action. > > Cheers, > Orson > > On 11/21/18 11:15 AM, John Beard wrote: > > Hi, > > > > A little technical query provoked by someone else's question, which I > > was unable to answer. > > > > Say one wanted to add a global mouse shortcut, for example, double > > middle-click to do "zoom-to-fit" [1]. > > > > The current mouse events are handled on a contextual basis in the > > event loops for each tool. Thus, each tool handles its own clicks, > > drags, etc, which generally makes sense for the basic left/right > > clicks as what that does is usually highly tool-dependent. Global key > > shortcuts for ACTIONs are handled at a higher level and and either > > trigger a transition set by setTransitions(), or translated to an > > event and caught by the current tool's event loop as their own event > > (checked with evt->IsAction()) > > > > However, there appears to be no way to add a mouse click pattern to an > > ACTION, thus you can't have a global double-middle-click, unless you > > add an "if( evt->IsDblClick( BTN_MIDDLE))" to every event loop. > > > > What would be the right way (if any) to approach this? I'm ignoring > > for now the UI implications of presenting such a shortcut in the > > hotkey dialog, implementing the "set hotkey" action, and any problems > > that might arise in having it co-exist with legacy hotkeys. > > > > Cheers, > > > > John > > > > [1]: https://bugs.launchpad.net/kicad/+bug/1480868 > > _______________________________________________ > Mailing list: https://launchpad.net/~kicad-developers > Post to : [email protected] > Unsubscribe : https://launchpad.net/~kicad-developers > More help : https://help.launchpad.net/ListHelp _______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : [email protected] Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp

