diff options
author | Rodrigo Arias Mallo <rodarima@gmail.com> | 2024-10-12 21:51:58 +0200 |
---|---|---|
committer | Rodrigo Arias Mallo <rodarima@gmail.com> | 2024-10-13 13:59:06 +0200 |
commit | 667f7fd713bc2d4f9196bc71e2b8ac8b2ca210f1 (patch) | |
tree | ccb9554f418217655fbbafb94117bb4d0a0d66fc /dw/fltkviewport.cc | |
parent | 1f7e5f5c258c3d66e1704ee48a11c79c65f8354b (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.cc | 10 |
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; |