From 67635e1fece9f8d9f15aa8183998af2eaf2bd30f Mon Sep 17 00:00:00 2001 From: Jonathan Moore Liles Date: Mon, 4 Feb 2013 22:41:09 -0800 Subject: [PATCH] Fl_Panzoomer: Use input from X mouse scroll axis. --- src/Fl_Panzoomer.cxx | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/Fl_Panzoomer.cxx b/src/Fl_Panzoomer.cxx index 9ee18a9..9e78255 100644 --- a/src/Fl_Panzoomer.cxx +++ b/src/Fl_Panzoomer.cxx @@ -280,27 +280,34 @@ Fl_Panzoomer::handle ( int m, int X, int Y, int W, int H ) } case FL_MOUSEWHEEL: { - int d = Fl::event_dy(); + const int dy = Fl::event_dy(); + const int dx = Fl::event_dx(); - if ( Fl::event_ctrl() ) + if ( dy && Fl::event_ctrl() ) { - zoom( _zoom + d ); + zoom( _zoom + dy ); damage( FL_DAMAGE_USER1 ); return 1; } - else if (!Fl::event_alt() && !Fl::event_shift()) + + if ( !Fl::event_alt() && !Fl::event_shift()) { - y_value( _ypos + ( (double)d*5 / H ) * _ymax ); + if ( dy ) + y_value( _ypos + ( (double)dy*5 / H ) * _ymax ); + + if ( dx ) + x_value( _xpos + ( (double)dx*5 / W ) * _xmax ); if ( when() & FL_WHEN_CHANGED ) do_callback(); - + damage( FL_DAMAGE_USER1 ); - + return 1; } + return 0; break; }