diff options
Diffstat (limited to 'dw/fltkviewport.cc')
-rw-r--r-- | dw/fltkviewport.cc | 10 |
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) { |