X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FSeqPanel.java;h=2df55ad53080f9a8c9eeb8a9c4f2a57636d9e3c1;hb=14ec98716bf86e13337e30eeaa8355b2284a6e4c;hp=546838dbb26e3dde83c211ffeb1464909f0eebb0;hpb=3da878124135ff033f42d19d8733891b09e953cd;p=jalview.git diff --git a/src/jalview/gui/SeqPanel.java b/src/jalview/gui/SeqPanel.java index 546838d..2df55ad 100644 --- a/src/jalview/gui/SeqPanel.java +++ b/src/jalview/gui/SeqPanel.java @@ -321,8 +321,10 @@ public class SeqPanel extends JPanel } else { - seqIndex = Math.min((y / charHeight) + av.getRanges().getStartSeq(), + ViewportRanges ranges = av.getRanges(); + seqIndex = Math.min((y / charHeight) + ranges.getStartSeq(), alignmentHeight - 1); + seqIndex = Math.min(seqIndex, ranges.getEndSeq()); } return new MousePos(col, seqIndex, annIndex); @@ -1940,6 +1942,7 @@ public class SeqPanel extends JPanel @Override public void mouseExited(MouseEvent e) { + lastMousePosition = null; ap.alignFrame.setStatus(" "); if (av.getWrapAlignment()) { @@ -2405,33 +2408,12 @@ public class SeqPanel extends JPanel { scrollThread = new ScrollThread(); scrollThread.setMousePosition(mousePos); - if (!Platform.isJS()) - { - /* - * Java - run in a new thread - */ - scrollThread.start(); - } - else + if (Platform.isJS()) { /* * Javascript - run every 20ms until scrolling stopped * or reaches the limit of scrollable alignment */ - // java.util.Timer version: - // Timer t = new Timer("ScrollThreadTimer", true); - // TimerTask task = new TimerTask() - // { - // @Override - // public void run() - // { - // if (!scrollThread.scrollOnce()) - // { - // cancel(); - // } - // } - // }; - // t.schedule(task, 20, 20); Timer t = new Timer(20, new ActionListener() { @Override @@ -2451,7 +2433,7 @@ public class SeqPanel extends JPanel { if (scrollThread == null) { - // finished and nulled itself + // SeqPanel.stopScrolling called t.stop(); } } @@ -2459,6 +2441,13 @@ public class SeqPanel extends JPanel t.start(); } } + else + { + /* + * Java - run in a new thread + */ + scrollThread.start(); + } } /**