}
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);
@Override
public void mouseExited(MouseEvent e)
{
+ lastMousePosition = null;
ap.alignFrame.setStatus(" ");
if (av.getWrapAlignment())
{
* 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
{
if (scrollThread == null)
{
- // finished and nulled itself
+ // SeqPanel.stopScrolling called
t.stop();
}
}