← Back to team overview

kicad-developers team mailing list archive

Re: [PATCH] Support of horizontal scrolling events in pcbnew and 3d-viewer

 

If this capability should be added now, it should be done consistent for all platforms.
We had this discussion for OS X already way back, but back then nobody seemed to be interested in adding also for Windows/Linux…

Garth made some changes where you even could switch between mouse wheel X/Y panning and normal behaviour via preferences menu.


Regards,
Bernhard

> On 01 Nov 2015, at 15:37, Nick Østergaard <oe.nick@xxxxxxxxx> wrote:
> 
> By the way, could you please attach patches instead of inlining in the mail?
> 
> 2015-11-01 11:54 GMT+01:00 Yauhen Kharuzhy <jekhor@xxxxxxxxx>:
>> Add handling of horizontal mouse wheel scrolling to new GL pcbnew canvas
>> and to 3d-viewer like eeschema has (left-right panning with Shift key down).
>> 
>> Horizontal scrolling events are usual case for touchpads and TrackPoint
>> devices.
>> 
>> Signed-off-by: Yauhen Kharuzhy <jekhor@xxxxxxxxx>
>> ---
>> 3d-viewer/3d_canvas.cpp          |  6 ++++--
>> common/view/wx_view_controls.cpp | 26 ++++++++++++++++++++++++--
>> 2 files changed, 28 insertions(+), 4 deletions(-)
>> 
>> diff --git a/3d-viewer/3d_canvas.cpp b/3d-viewer/3d_canvas.cpp
>> index 24d022a..c8d7e84 100644
>> --- a/3d-viewer/3d_canvas.cpp
>> +++ b/3d-viewer/3d_canvas.cpp
>> @@ -285,12 +285,14 @@ void EDA_3D_CANVAS::SetView3D( int keycode )
>> 
>> void EDA_3D_CANVAS::OnMouseWheel( wxMouseEvent& event )
>> {
>> +    int axis = event.GetWheelAxis();
>> +
>>     if( event.ShiftDown() )
>>     {
>>         if( event.GetWheelRotation() < 0 )
>> -            SetView3D( WXK_UP );    // move up
>> +            SetView3D( (axis == wxMOUSE_WHEEL_VERTICAL) ? WXK_UP : WXK_RIGHT );
>>         else
>> -            SetView3D( WXK_DOWN );  // move down
>> +            SetView3D( (axis == wxMOUSE_WHEEL_VERTICAL) ? WXK_DOWN : WXK_LEFT );
>>     }
>>     else if( event.ControlDown() )
>>     {
>> diff --git a/common/view/wx_view_controls.cpp b/common/view/wx_view_controls.cpp
>> index 3484a15..b745d1b 100644
>> --- a/common/view/wx_view_controls.cpp
>> +++ b/common/view/wx_view_controls.cpp
>> @@ -102,14 +102,36 @@ void WX_VIEW_CONTROLS::onWheel( wxMouseEvent& aEvent )
>>         VECTOR2D scrollVec = m_view->ToWorld( m_view->GetScreenPixelSize(), false ) *
>>                              ( (double) aEvent.GetWheelRotation() * wheelPanSpeed );
>>         double   scrollSpeed;
>> +        double   deltaX = 0.0, deltaY = 0.0;
>> 
>>         if( std::abs( scrollVec.x ) > std::abs( scrollVec.y ) )
>>             scrollSpeed = scrollVec.x;
>>         else
>>             scrollSpeed = scrollVec.y;
>> 
>> -        VECTOR2D delta( aEvent.ControlDown() ? -scrollSpeed : 0.0,
>> -                        aEvent.ShiftDown() ? -scrollSpeed : 0.0 );
>> +        int axis = aEvent.GetWheelAxis();
>> +
>> +        switch( axis )
>> +        {
>> +        case wxMOUSE_WHEEL_VERTICAL:
>> +            if( aEvent.ControlDown() )
>> +            {
>> +                deltaX = -scrollSpeed;
>> +                deltaY = 0.0;
>> +            }
>> +            else
>> +            {
>> +                deltaY = -scrollSpeed;
>> +                deltaX = 0;
>> +            }
>> +            break;
>> +        case wxMOUSE_WHEEL_HORIZONTAL:
>> +            deltaX = scrollSpeed;
>> +            deltaY = 0.0;
>> +            break;
>> +        }
>> +
>> +        VECTOR2D delta( deltaX, deltaY );
>> 
>>         m_view->SetCenter( m_view->GetCenter() + delta );
>>     }
>> --
>> 2.5.3
>> 
>> 
>> _______________________________________________
>> 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
> 
> _______________________________________________
> 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



Follow ups

References