Merge branch 'develop' into feature/JAL-4227_Rfam2020_sslines
[jalview.git] / src / jalview / gui / TreeCanvas.java
index c1a6b0a..55ce44a 100755 (executable)
@@ -1148,32 +1148,37 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable,
     if (aa != null)
     {
       ContactMatrixI cm = av.getContactMatrix(aa);
+      // generally, we assume cm has 1:1 mapping to annotation row - probably wrong
+      // but.. if
       if (cm instanceof MappableContactMatrixI)
       {
+        int[] pos;
+          // use the mappable's mapping - always the case for PAE Matrices so good
+        // for 2.11.3
         MappableContactMatrixI mcm = (MappableContactMatrixI) cm;
-        int pos[]=mcm.getMappedPositionsFor(rseq, colm);
-        if (pos!=null)
+        pos = mcm.getMappedPositionsFor(rseq, colm + 1);
+        // finally, look up the position of the column
+        if (pos != null)
         {
-          offp=rseq.findIndex(pos[0])-1;
-        } else {
-          offp=-2;
+          offp = rseq.findIndex(pos[0]);
         }
+      } else {
+        offp = colm;
       }
     }
-    if (offp==-1)
+    if (offp<=0)
     {
-      // assume a direct mapping to reference or column number
-        offp = (rseq != null) ? rseq.findIndex(rseq.getStart() + colm)
-            : colm;
+      return false;
     }
 
+    offp-=2;
     if (!av.hasHiddenColumns())
     {
       return cs.contains(offp);
     }
-    if (hc.isVisible(offp - 1))
+    if (hc.isVisible(offp))
     {
-      return cs.contains(offp - 1);
+      return cs.contains(offp);
       // return cs.contains(hc.absoluteToVisibleColumn(offp));
     }
     return false;
@@ -1265,6 +1270,7 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable,
         }
       }
     }
+    PaintRefresher.Refresh(tp, av.getSequenceSetId());
   }
 
   public void createSeqGroupFor(AlignmentPanel[] aps, Vector<BinaryNode> l,