X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FSeqCanvas.java;h=536bfef8758d7a3f45bf49fac68c057c56ee51a9;hb=bc948cc6fa075fe5bcd9aa29bf8e37552cf83cb7;hp=2d83e9e2c733d878243728661fa1960ee546b804;hpb=2a8f05d270d7346dd6ec68da46ca08152dd84933;p=jalview.git diff --git a/src/jalview/gui/SeqCanvas.java b/src/jalview/gui/SeqCanvas.java index 2d83e9e..536bfef 100755 --- a/src/jalview/gui/SeqCanvas.java +++ b/src/jalview/gui/SeqCanvas.java @@ -1690,6 +1690,7 @@ public class SeqCanvas extends JPanel implements ViewportListenerI // Make sure we're not trying to draw a panel // larger than the visible window int scrollX = 0; + int scrollY = 0; switch (eventName) { case SequenceGroup.SEQ_GROUP_CHANGED: @@ -1717,8 +1718,21 @@ public class SeqCanvas extends JPanel implements ViewportListenerI case ViewportRanges.STARTRESANDSEQ: scrollX = ((int[]) evt.getNewValue())[0] - ((int[]) evt.getOldValue())[0]; + scrollY = ((int[]) evt.getNewValue())[1] + - ((int[]) evt.getOldValue())[1]; + + // System.out.println("SC dx dy " + scrollX + " " + scrollY); + + if (scrollX != 0 && scrollY != 0) + { + // all sorts of problems in JavaScript if this is commented out. + repaint(); + return; + + } break; } + ViewportRanges vpRanges = av.getRanges(); int range = vpRanges.getEndRes() - vpRanges.getStartRes() + 1; scrollX = Math.max(Math.min(scrollX, range), -range); @@ -1729,7 +1743,7 @@ public class SeqCanvas extends JPanel implements ViewportListenerI } else { - fastPaint(scrollX, 0); + fastPaint(scrollX, scrollY); } // BH 2019.07.27 was: