aboutsummaryrefslogtreecommitdiff
path: root/dw/fltkviewport.cc
diff options
context:
space:
mode:
authorRodrigo Arias Mallo <rodarima@gmail.com>2024-10-12 21:51:58 +0200
committerRodrigo Arias Mallo <rodarima@gmail.com>2024-10-13 13:59:06 +0200
commit667f7fd713bc2d4f9196bc71e2b8ac8b2ca210f1 (patch)
treeccb9554f418217655fbbafb94117bb4d0a0d66fc /dw/fltkviewport.cc
parent1f7e5f5c258c3d66e1704ee48a11c79c65f8354b (diff)
Scroll full pages with mouse wheel
When using the scroll wheel over a page, holding Shift will cause full pages to be scrolled instead of scroll steps. The same effect can be achieved by scrolling over the vertical scrollbar.
Diffstat (limited to 'dw/fltkviewport.cc')
-rw-r--r--dw/fltkviewport.cc10
1 files changed, 10 insertions, 0 deletions
diff --git a/dw/fltkviewport.cc b/dw/fltkviewport.cc
index f0b69cb8..b8f4e51e 100644
--- a/dw/fltkviewport.cc
+++ b/dw/fltkviewport.cc
@@ -348,6 +348,16 @@ int FltkViewport::handle (int event)
break;
case FL_MOUSEWHEEL:
+ if ((vscrollbar->visible() && Fl::event_inside(vscrollbar)) ||
+ Fl::event_shift()) {
+ if (Fl::event_dy() > 0) {
+ scroll(core::SCREEN_DOWN_CMD);
+ return 1;
+ } else if (Fl::event_dy() < 0) {
+ scroll(core::SCREEN_UP_CMD);
+ return 1;
+ }
+ }
return (Fl::event_dx() ? hscrollbar : vscrollbar)->handle(event);
break;