X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FSeqPanel.java;h=9a61f5fc350998c2a81a637ae530c427b9e5f20b;hb=9317de4ce997ec39dee25ec507c12807c5067d7d;hp=fc7c46efe45fd7bcee134a31dbf41bced285c318;hpb=be762d8d9c71a7aa3121e845c45911c7192b7827;p=jalview.git diff --git a/src/jalview/appletgui/SeqPanel.java b/src/jalview/appletgui/SeqPanel.java index fc7c46e..9a61f5f 100644 --- a/src/jalview/appletgui/SeqPanel.java +++ b/src/jalview/appletgui/SeqPanel.java @@ -335,7 +335,7 @@ public class SeqPanel extends Panel implements MouseMotionListener, sg.addSequence(sequence, false); av.setSelectionGroup(sg); } - ap.paintAlignment(false); + ap.paintAlignment(false, false); av.sendSelection(); } @@ -417,7 +417,6 @@ public class SeqPanel extends Panel implements MouseMotionListener, * alignment column * @param seq * index of sequence in alignment - * @return position of column in sequence or -1 if at gap */ void setStatusMessage(SequenceI sequence, int column, int seq) { @@ -983,7 +982,7 @@ public class SeqPanel extends Panel implements MouseMotionListener, lastMousePress = evt.getPoint(); - ap.paintAlignment(false); + ap.paintAlignment(false, false); ap.annotationPanel.image = null; return; } @@ -1402,7 +1401,7 @@ public class SeqPanel extends Panel implements MouseMotionListener, { if (scrollThread != null) { - scrollThread.running = false; + scrollThread.threadRunning = false; scrollThread = null; } @@ -1450,7 +1449,7 @@ public class SeqPanel extends Panel implements MouseMotionListener, { if (links == null) { - links = new Vector(); + links = new Vector<>(); } links.addAll(sf.links); } @@ -1524,7 +1523,7 @@ public class SeqPanel extends Panel implements MouseMotionListener, } } PaintRefresher.Refresh(ap, av.getSequenceSetId()); - ap.paintAlignment(needOverviewUpdate); + ap.paintAlignment(needOverviewUpdate, needOverviewUpdate); needOverviewUpdate = false; changeEndRes = false; changeStartRes = false; @@ -1649,7 +1648,7 @@ public class SeqPanel extends Panel implements MouseMotionListener, mouseExited(evt); } - if (scrollThread != null) + if ((scrollThread != null) && (scrollThread.isRunning())) { scrollThread.setEvent(evt); } @@ -1665,9 +1664,9 @@ public class SeqPanel extends Panel implements MouseMotionListener, oldSeq = 0; } - if (scrollThread != null) + if ((scrollThread != null) && (scrollThread.isRunning())) { - scrollThread.running = false; + scrollThread.stopScrolling(); scrollThread = null; } } @@ -1690,9 +1689,9 @@ public class SeqPanel extends Panel implements MouseMotionListener, { if (evt == null) { - if (scrollThread != null) + if ((scrollThread != null) && (scrollThread.isRunning())) { - scrollThread.running = false; + scrollThread.stopScrolling(); scrollThread = null; } mouseDragging = false; @@ -1715,7 +1714,7 @@ public class SeqPanel extends Panel implements MouseMotionListener, { MouseEvent evt; - boolean running = false; + private volatile boolean threadRunning = true; public ScrollThread() { @@ -1729,14 +1728,18 @@ public class SeqPanel extends Panel implements MouseMotionListener, public void stopScrolling() { - running = false; + threadRunning = false; + } + + public boolean isRunning() + { + return threadRunning; } @Override public void run() { - running = true; - while (running) + while (threadRunning) { if (evt != null) @@ -1745,23 +1748,23 @@ public class SeqPanel extends Panel implements MouseMotionListener, if (mouseDragging && evt.getY() < 0 && av.getRanges().getStartSeq() > 0) { - running = av.getRanges().scrollUp(true); + av.getRanges().scrollUp(true); } if (mouseDragging && evt.getY() >= getSize().height && av .getAlignment().getHeight() > av.getRanges().getEndSeq()) { - running = av.getRanges().scrollUp(false); + av.getRanges().scrollUp(false); } if (mouseDragging && evt.getX() < 0) { - running = av.getRanges().scrollRight(false); + av.getRanges().scrollRight(false); } else if (mouseDragging && evt.getX() >= getSize().width) { - running = av.getRanges().scrollRight(true); + av.getRanges().scrollRight(true); } }