JAL-1858 fast paint wrapped highlights unless view was scrolled
[jalview.git] / src / jalview / gui / SeqPanel.java
index 1a3081f..ca79c73 100644 (file)
@@ -681,6 +681,8 @@ public class SeqPanel extends JPanel implements MouseListener,
     }
     lastSearchResults = results;
 
+    boolean wasScrolled = false;
+
     if (av.isFollowHighlight())
     {
       // don't allow highlight of protein/cDNA to also scroll a complementary
@@ -688,13 +690,16 @@ public class SeqPanel extends JPanel implements MouseListener,
       // over residue to change abruptly, causing highlighted residue in panel 2
       // to change, causing a scroll in panel 1 etc)
       ap.setToScrollComplementPanel(false);
-      if (ap.scrollToPosition(results, false))
+      wasScrolled = ap.scrollToPosition(results, false);
+      if (wasScrolled)
       {
         seqCanvas.revalidate();
       }
       ap.setToScrollComplementPanel(true);
     }
-    if (seqCanvas.highlightSearchResults(results))
+
+    boolean noFastPaint = wasScrolled && av.getWrapAlignment();
+    if (seqCanvas.highlightSearchResults(results, noFastPaint))
     {
       setStatusMessage(results);
     }
@@ -1594,7 +1599,7 @@ public class SeqPanel extends JPanel implements MouseListener,
         SearchResultsI highlight = new SearchResults();
         highlight.addResult(sequence, features.get(0).getBegin(), features
                 .get(0).getEnd());
-        seqCanvas.highlightSearchResults(highlight);
+        seqCanvas.highlightSearchResults(highlight, false);
 
         /*
          * open the Amend Features dialog; clear highlighting afterwards,