Merge branch 'develop' into features/JAL-2094_colourInterface
[jalview.git] / src / jalview / gui / AnnotationPanel.java
index 04590ba..7450555 100755 (executable)
@@ -49,6 +49,7 @@ import java.awt.event.MouseMotionListener;
 import java.awt.event.MouseWheelEvent;
 import java.awt.event.MouseWheelListener;
 import java.awt.image.BufferedImage;
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
@@ -445,8 +446,12 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI,
     StringBuilder collatedInput = new StringBuilder(64);
     String last = "";
     ColumnSelection viscols = av.getColumnSelection();
-    // TODO: refactor and save av.getColumnSelection for efficiency
-    List<Integer> selected = viscols.getSelected();
+
+    /*
+     * the selection list (read-only view) is in selection order, not
+     * column order; make a copy so we can sort it
+     */
+    List<Integer> selected = new ArrayList<Integer>(viscols.getSelected());
     Collections.sort(selected);
     for (int index : selected)
     {
@@ -543,7 +548,6 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI,
     }
 
     ap.getScalePanel().mousePressed(evt);
-
   }
 
   /**
@@ -607,6 +611,10 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI,
     mouseDragging = false;
     ap.getScalePanel().mouseReleased(evt);
 
+    /*
+     * isPopupTrigger is set in mouseReleased on Windows
+     * (in mousePressed on Mac)
+     */
     if (evt.isPopupTrigger() && activeRow != -1)
     {
       showPopupMenu(evt.getY(), evt.getX());