What patch? Did I miss an email in this thread at some point? On 3/1/2016 1:42 PM, Bernhard Stegmaier wrote: > With my patch it should behave the same way on all platforms. > It just does ignore axis then… > > GAL does things already differently and apparently it is fine on > Windows/Linux > and Mac with that code. > So, just using my patch should be the easiest way to get things consistent > again > on all platforms for now. > >> On 01.03.2016, at 19:35, Wayne Stambaugh <stambau...@gmail.com> wrote: >> >> On 3/1/2016 1:25 PM, Bernhard Stegmaier wrote: >>> I did that for a PC mouse with my Mac. >>> As I said in the beginning… Whoever does this, I get axis 0 when nothing >>> is pressed, and axis 1 when shift is pressed (using the same mouse, the >>> same mousewheel, no touchpad). >>> That’s why it only did scroll horizontal with the original code (obviously >>> only >>> on OS X). >> >> It sounds like this is not what is happen on linux. We may have to >> normalize the axis/shift key behavior to account for platform differences. >> >>> >>> Of course, the axis is for things like touchpads and that’s exactly what >>> gets >>> used in touchpad-panning mode. >>> That’s exactly what is the really nice thing about the automatic axis >>> change: >>> With touchpad-panning the same piece of code works with a touchpad and >>> a normal mouse. >>> Unmodifed wheel scrolls up/down, shift-wheel scrolls left/right. >>> Kicad doesn’t have to know anything about which device is there, it just >>> works… :) >>> >>> >>>> On 01.03.2016, at 19:15, Wayne Stambaugh <stambau...@gmail.com> wrote: >>>> >>>> I believe the axis is for mice with multiple wheels where the 0 axis is >>>> the scroll wheel typically used for vertical scrolling. I do not >>>> believe the shift or control keys have anything to do with the axis in >>>> the wxMouseEvent but I have looked at the wxWidget code to see if that >>>> is the case. Perhaps there are some inconsistencies between platform as >>>> to what these axis mean. The easiest way to find this out is to trace >>>> the mouse events and see which axis is being sent in the wxMouseEvent >>>> inside the OnScroll function. >>>> >>>> On 3/1/2016 12:44 PM, Bernhard Stegmaier wrote: >>>>> Yes, but documentation doesn’t state anything about changing axis with >>>>> shift/ctrl (at least, I didn’t see it). >>>>> >>>>> If the non-touchpad scroll code shall ignore ignore any additional axis, >>>>> then the current implementation is wrong (it doesn’t ignore axis). >>>>> >>>>> Attached a patch to ignore axis in non-touchpad scroll code (as it was >>>>> before rev4505). >>>>> Therewith, also shift/ctrl panning again works on OS X (though it might >>>>> not >>>>> conform to Apple UI guidelines where shift-wheel does a horizontal >>>>> scroll). >>>>> >>>>> >>>>> Regards, >>>>> Bernhard >>>>> >>>>> >>>>> >>>>> >>>>> PS: >>>>> Mac users using a PC mouse and a Apple mouse in parallel might notice >>>>> that the >>>>> scroll direction of PC mouse is just the other way round than for Mac >>>>> mouse (and >>>>> maybe touchpad). >>>>> Yes. I don’t want to investigate if I can find out which device is >>>>> connected, so it >>>>> is as it is. Don’t use a PC mouse on a Mac… :) >>>>> >>>>>> On 29.02.2016, at 01:24, Wayne Stambaugh <stambau...@gmail.com >>>>>> <mailto:stambau...@gmail.com>> wrote: >>>>>> >>>>>> Take a look at the documentation for wxMouseEvent.GetWheelAxis()[1]. >>>>>> Some mice and/or trackpads can generate additional axis for horizontal >>>>>> scroll support. That's why the scroll code ignores any additional axis. >>>>>> Prior to 2.94, GetWheelAxis() returned an int where 0 was the vertical >>>>>> scroll. Now GetWheelAxis() returns wxMOUSE_WHEEL_VERTICAL and >>>>>> wxMOUSE_WHEEL_HORIZONTAL which are enums. I didn't look but I'm >>>>>> assuming they map to 0 and 1 but it would be more correct to use the >>>>>> enums rather than 0. >>>>>> >>>>>> [1]: >>>>>> http://docs.wxwidgets.org/3.0/classwx_mouse_event.html#a6e455a3fa3708031d8571e42489d453e >>>>>> >>>>>> On 2/28/2016 6:22 PM, Bernhard Stegmaier wrote: >>>>>>> Hi Garth, >>>>>>> >>>>>>> thanks for the link, do you remember what this patch does actually fix? >>>>>>> I just checked and the bug is closed… and is integrated both in current >>>>>>> 3.0.x branch and master (I am using master). >>>>>>> If I understand the ticket correctly, this fix is only about the >>>>>>> not-working event.skip() or some duplicate handling. >>>>>>> >>>>>>> So, even with this fix the current scrolling is broken due to (obviously >>>>>>> OS X only) change in axis when shift is pressed. >>>>>>> But, as you said, this might be on purpose, because it just leads to >>>>>>> consistent behaviour of how it is handled in native OS X applications >>>>>>> without having to change code or knowing which device is used. >>>>>>> >>>>>>> On OS X the only thing you would want to use is some Apple device with >>>>>>> touchpad-panning anyway… :) >>>>>>> >>>>>>> I still would consider this a wxWidgets bug, because I would expect that >>>>>>> a platform-independent application framework doesn’t show different >>>>>>> platform specific behavior like this… but that’s another story. >>>>>>> >>>>>>> Anyway… this still leaves the question open on how to fix it - assuming >>>>>>> that a consistent KiCad behavior on all platforms is the goal. >>>>>>> Change axis back on OS X or remove the piece of code that checks axis >>>>>>> (if somebody can remember why it is done this way)? >>>>>>> It came in with >>>>>>> http://bazaar.launchpad.net/~kicad-product-committers/kicad/product/revision/4505 >>>>>>> … but there is no hint why this was changed. >>>>>>> >>>>>>> >>>>>>> Regards, >>>>>>> Bernhard >>>>>>> >>>>>>>> On 28 Feb 2016, at 23:18, Garth Corral <gcor...@abode.com >>>>>>>> <mailto:gcor...@abode.com> >>>>>>>> <mailto:gcor...@abode.com>> wrote: >>>>>>>> >>>>>>>> Hi, Bernhard >>>>>>>> >>>>>>>> Yes, you have it right on both counts. That was, and still is, my >>>>>>>> assessment. The existing behavior is not correct, at least as far as >>>>>>>> OS X (and probably Linux) is concerned. I don’t know about windows. >>>>>>>> That is the patch that fixes the issue to which I referred in that >>>>>>>> post. >>>>>>>> >>>>>>>> I think it might be this issue: >>>>>>>> >>>>>>>> http://trac.wxwidgets.org/ticket/15684 >>>>>>>> >>>>>>>> >>>>>>>>> On Feb 28, 2016, at 11:25 AM, Bernhard Stegmaier >>>>>>>>> <stegma...@sw-systems.de >>>>>>>>> <mailto:stegma...@sw-systems.de> <mailto:stegma...@sw-systems.de>> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>> FYI, meanwhile I found an old mail from Garth on this topic (March >>>>>>>>> last year): >>>>>>>>> <<< >>>>>>>>> Shift-modified scrollwheel events in wxWidgets (at least on OS X) >>>>>>>>> have their axis modified (by wxWidgets) to be horizontal. This >>>>>>>>> matches the behavior of native OS X applications as well. So making >>>>>>>>> shift-scrollwheel do vertical scrolling is wrong (and exposed a >>>>>>>>> wxWidgets bug for which I committed a patch). >>>>>>>>>>>> >>>>>>>>> >>>>>>>>> Maybe it is this patch >>>>>>>>> patches/wxwidgets-3.0.0_macosx_scrolledwindow.patch >>>>>>>>> but I didn’t find a wxWidgets bug for it… >>>>>>>>> >>>>>>>>> So, regardless if the scrolling direction with shift is right or not, >>>>>>>>> another wxWidgets bug… should we keep on patching wxWidgets (and file >>>>>>>>> a bug report and hope for the best)? >>>>>>>>> The change I proposed below would at least make it fault tolerant >>>>>>>>> without any additional workaround code. >>>>>>>>> >>>>>>>>> >>>>>>>>> Regards, >>>>>>>>> Bernhard >>>>>>>>> >>>>>>>>>> On 28 Feb 2016, at 19:33, Bernhard Stegmaier >>>>>>>>>> <stegma...@sw-systems.de >>>>>>>>>> <mailto:stegma...@sw-systems.de> <mailto:stegma...@sw-systems.de>> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>> Hi, >>>>>>>>>> >>>>>>>>>> while testing the touchpad-panning for the recent 3d-viewer fixes I >>>>>>>>>> noticed, that non-touchpad-panning using shift/ctrl-wheel and a >>>>>>>>>> normal PC mouse seems to be broken on OS X with legacy canvas. >>>>>>>>>> >>>>>>>>>> It only pans horizontal regardless whether you press shift or ctrl. >>>>>>>>>> This is already the case in the official 4.0.1, so it has nothing to >>>>>>>>>> do with my changes. >>>>>>>>>> >>>>>>>>>> Debugging this I noticed that obviously wxWidgets or OS X change the >>>>>>>>>> wheel axis from vertical (0) without shift (or, while pressing ctrl) >>>>>>>>>> to horizontal (1) when pressing shift. >>>>>>>>>> >>>>>>>>>> So, this piece of code (draw_panel.cpp, line 985ff): >>>>>>>>>> >>>>>>>>>> if(event.ShiftDown()&&!event.ControlDown()) >>>>>>>>>> { >>>>>>>>>> if(axis==0) >>>>>>>>>> cmd.SetId(ID_PAN_UP); >>>>>>>>>> else >>>>>>>>>> cmd.SetId(ID_PAN_RIGHT); >>>>>>>>>> } >>>>>>>>>> elseif(event.ControlDown()&&!event.ShiftDown()) >>>>>>>>>> cmd.SetId(ID_PAN_LEFT); >>>>>>>>>> >>>>>>>>>> will do a pan left/right when shift is pressed (because axis==1) >>>>>>>>>> instead of horizontal as it should. >>>>>>>>>> >>>>>>>>>> Question is… why is this “if( axis == 0 )” in there (and, only for >>>>>>>>>> the shift case)? >>>>>>>>>> Any special purpose? >>>>>>>>>> >>>>>>>>>> Of course, I could fix this by adding a OS X specific #ifdef, which >>>>>>>>>> reverts the change of the axis on shift being pressed. >>>>>>>>>> However, if the axis would be just ignored in the shift-case like in >>>>>>>>>> the ctrl-case, it would work without any #ifdef (not tested): >>>>>>>>>> >>>>>>>>>> if(event.ShiftDown()&&!event.ControlDown()) >>>>>>>>>> cmd.SetId(ID_PAN_UP); >>>>>>>>>> elseif(event.ControlDown()&&!event.ShiftDown()) >>>>>>>>>> cmd.SetId(ID_PAN_LEFT); >>>>>>>>>> >>>>>>>>>> That’s basically what GAL does (ignoring axis, just looking at >>>>>>>>>> shift/ctrl modifiers) and that’s why it works there. >>>>>>>>>> However, I don’t know if any intended functionality gets lost with >>>>>>>>>> that change. >>>>>>>>>> Maybe something like touchpad-panning when pressing shift, but zoom >>>>>>>>>> without any modifier? >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Regards, >>>>>>>>>> Bernhard >>>>>>>>>> _______________________________________________ >>>>>>>>>> Mailing list: https://launchpad.net/~kicad-developers >>>>>>>>>> Post to : kicad-developers@lists.launchpad.net >>>>>>>>>> <mailto:kicad-developers@lists.launchpad.net> >>>>>>>>>> <mailto:kicad-developers@lists.launchpad.net> >>>>>>>>>> Unsubscribe : https://launchpad.net/~kicad-developers >>>>>>>>>> More help : https://help.launchpad.net/ListHelp >>>>>>>>> >>>>>>>>> _______________________________________________ >>>>>>>>> Mailing list: https://launchpad.net/~kicad-developers >>>>>>>>> Post to : kicad-developers@lists.launchpad.net >>>>>>>>> <mailto:kicad-developers@lists.launchpad.net> >>>>>>>>> <mailto:kicad-developers@lists.launchpad.net> >>>>>>>>> Unsubscribe : https://launchpad.net/~kicad-developers >>>>>>>>> More help : https://help.launchpad.net/ListHelp >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Mailing list: https://launchpad.net/~kicad-developers >>>>>>> Post to : kicad-developers@lists.launchpad.net >>>>>>> <mailto:kicad-developers@lists.launchpad.net> >>>>>>> Unsubscribe : https://launchpad.net/~kicad-developers >>>>>>> More help : https://help.launchpad.net/ListHelp >>>>>>> >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> Mailing list: https://launchpad.net/~kicad-developers >>>>>> Post to : kicad-developers@lists.launchpad.net >>>>>> <mailto:kicad-developers@lists.launchpad.net> >>>>>> Unsubscribe : https://launchpad.net/~kicad-developers >>>>>> More help : https://help.launchpad.net/ListHelp >>>>> >>> >
_______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : kicad-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp