kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #38413
Re: Adding global mouse shortcuts in GAL tool framework
-
To:
John Beard <john.j.beard@xxxxxxxxx>
-
From:
Maciej Suminski <maciej.suminski@xxxxxxx>
-
Date:
Sat, 24 Nov 2018 20:22:31 +0100
-
Authentication-results:
spf=pass (sender IP is 188.184.36.46) smtp.mailfrom=cern.ch; lists.launchpad.net; dkim=none (message not signed) header.d=none;lists.launchpad.net; dmarc=bestguesspass action=none header.from=cern.ch;
-
Autocrypt:
addr=maciej.suminski@xxxxxxx; prefer-encrypt=mutual; keydata= xsBNBFKfmAwBCAC9tak+4mDO1WiNnAwegusPBMEdl+sV35XeaU4PGSt33mPSlXB2klamg4ih QUykvuWqNEg2KyTvCSKNfnHTpzeeFegEsIwWFdhbIc4uUAD6CHl4+uGTXQiMh1+IJkgLmwuD RCEx9mSKbdzzTKz05w+fzzT3mNfko8NICWlcmhFgo2RXnQRTqFg7CNNBpx4kr4+AWIvb+Rha AVMLVJj1s05+STGyFucu6sZmTmOC53ZtkV8HchJeGuQL0LPkjvX0VKGE3gkvuP4iLBcgFtNC Kcu/L6FmWd24m2IhWaHXoWLBiVFw7gGzUdB7gSAiNO1+SoWX+99rbud7RvqV49vOgoqbABEB AAHNKU1hY2llaiBTdW1pbnNraSA8bWFjaWVqLnN1bWluc2tpQGNlcm4uY2g+wsB5BBMBAgAj BQJSn5gMAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQFHAa7WGlsnU/JQf5AYW0 oFH+jOykZvlRkRZMoqw1vZGOHeRPK92vbjeiau/hALYX1FBvZMx+JMmVHN7DkRIY7bVoiJ6N n4Byn//BSd9F9eXjAphYVuBg2Xe5wp3/l9/z2Iw8KeLpfKAtfIybgpycvTuUxFIxm9mtpPt+ AoNFKBDhfLcpZLJTW7AwwpnzP+GDdjszjnW6rMt8Aq55liR+y/TZfz/tTEDcUcSPLlJBTmda TmkO5aPxPmeCeDMOT3YEd+bK57V5b7RgtqTdIT6CW7tjQKBPJbIGa8PQ0tUfz0yCBEPWghnY w+B/2JeArrRXDui78cGgTDy1ocQNAm3havk2WO2qykxziY6Owc7ATQRSn5gMAQgAxw+MRllT IPNnCeOAbRgX1KRzo7+7WpSIbmhrBzLY0O1SyIa7U05E6+4jDHDfDpSLqc61an1+M69e6l9Z E3ve3hymtj5ucXZQnveQ5klD6z5FBC/04of/YyrS+h6iRSM0nOmu1JOIqM0S2OzwsKRsS86r jCtRE5OxoBDCIB4xNPitezs4uvLoVfO3mVYUhiPRZMtTCInEi+tlM+AmaPjRkPAfhd0wsOjk oxkuJWEnZ8U8oHpeL0uqANZgLlIiT5yJMWsyyqlK01hdFbuIydIFFiyXJw1HDTXWX+tMxJrX VEvQJZALof9RU/jntqGltnQXArUgPMSGGu1f+7AH/CuMyQARAQABwsBfBBgBAgAJBQJSn5gM AhsMAAoJEBRwGu1hpbJ1maAH/RZPbvXaNIOouHZlnlkq/WORHxjkKfve+AbE62Ed8yFIwlAj tyZGKeEG9hDJl6f9BxDv+9qunTfWfXQuHxNIpdXstkxQIx4m043Kx3h7VdEmg53ybeGNgpvz BYk5HdgCH3yP6UbGNiel6xZOywmvpru3pEKNg4mJhzxm9JCG+djrvbRh+BZNOkDBgaSiCAuJ q6Ffo9Qk/qfl6Uim9G7GKSS4930ZQ2GoVObe+jXixOhWXFSDhGKX5meABmELJ9XTcW3Pp6XC 0KXOE2p0EHQPmFvXdU6OePI72jTgRzPJXRXbPkL0/NUfbZfxS/xnAG8jmODc2ufbtrvE2jPu INX35u4=
-
Cc:
Kicad Developers <kicad-developers@xxxxxxxxxxxxxxxxxxx>
-
In-reply-to:
<CAG1r56LSXp_BvZpTqhqK6sUJtT+33zdtKMZ0oGefeTrdW509Zg@mail.gmail.com>
-
Openpgp:
preference=signencrypt
-
Spamdiagnosticmetadata:
NSPM
-
Spamdiagnosticoutput:
1:99
-
User-agent:
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.0
Hi John,
I am glad you like the idea. I agree it is better to wait until the
legacy canvas removal, it feels like we are quite close to reaching that
point.
Cheers,
Orson
On 11/23/18 10:04 PM, John Beard wrote:
> 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 <maciej.suminski@xxxxxxx> 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 : kicad-developers@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~kicad-developers
>> More help : https://help.launchpad.net/ListHelp
Attachment:
signature.asc
Description: OpenPGP digital signature
References