adds AlignFrame name jalview-alignment;
[jalview.git] / src / jalview / gui / SeqPanel.java
index 546838d..2df55ad 100644 (file)
@@ -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();
+    }
   }
 
   /**