aboutsummaryrefslogtreecommitdiff
path: root/dw/fltkviewport.cc
diff options
context:
space:
mode:
Diffstat (limited to 'dw/fltkviewport.cc')
-rw-r--r--dw/fltkviewport.cc10
1 files changed, 6 insertions, 4 deletions
diff --git a/dw/fltkviewport.cc b/dw/fltkviewport.cc
index 86071128..d24703b2 100644
--- a/dw/fltkviewport.cc
+++ b/dw/fltkviewport.cc
@@ -526,14 +526,16 @@ void FltkViewport::scroll (int dx, int dy)
void FltkViewport::scroll (core::ScrollCommand cmd)
{
+ int hdiff = vscrollbar->visible () ? SCROLLBAR_THICKNESS : 0;
+ int vdiff = hscrollbar->visible () ? SCROLLBAR_THICKNESS : 0;
if (cmd == core::SCREEN_UP_CMD) {
- scroll (0, -h () + pageOverlap);
+ scroll (0, -h () + pageOverlap + vdiff);
} else if (cmd == core::SCREEN_DOWN_CMD) {
- scroll (0, h () - pageOverlap);
+ scroll (0, h () - pageOverlap - vdiff);
} else if (cmd == core::SCREEN_LEFT_CMD) {
- scroll (-w() + pageOverlap, 0);
+ scroll (-w() + pageOverlap + hdiff, 0);
} else if (cmd == core::SCREEN_RIGHT_CMD) {
- scroll (w() - pageOverlap, 0);
+ scroll (w() - pageOverlap - hdiff, 0);
} else if (cmd == core::LINE_UP_CMD) {
scroll (0, -vscrollbar->linesize ());
} else if (cmd == core::LINE_DOWN_CMD) {