From bf3206cc56a3bff812f96967a81cc9cff54a57b1 Mon Sep 17 00:00:00 2001 From: gmungoc Date: Tue, 27 Jun 2017 13:59:46 +0100 Subject: [PATCH] JAL-147 scroll wrapped panel by one width's worth at a time --- src/jalview/gui/AlignmentPanel.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/jalview/gui/AlignmentPanel.java b/src/jalview/gui/AlignmentPanel.java index 72b1cc9..3994c29 100644 --- a/src/jalview/gui/AlignmentPanel.java +++ b/src/jalview/gui/AlignmentPanel.java @@ -757,13 +757,19 @@ public class AlignmentPanel extends GAlignmentPanel implements // if we're scrolling to the position we're already at, stop // this prevents infinite recursion of events when the scroll/viewport // ranges values are the same - if ((offy * rowSize == oldX) && (oldwidth == rowSize)) + int newX = offy * rowSize; + if ((newX == oldX) && (oldwidth == rowSize)) { return; } else if (offy > -1) { - vpRanges.setViewportStartAndWidth(offy * rowSize, rowSize); + /* + * throttle to one width's worth at a time (so click in + * scrollbar doesn't jump over data) + */ + newX = newX > oldX ? oldX + rowSize : oldX - rowSize; + vpRanges.setViewportStartAndWidth(newX, rowSize); } } else -- 1.7.10.2