X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAlignmentPanel.java;h=fae6dfc9fcd149b2d14ac019c5abb6eb31591050;hb=7e129811d6ff01074428462284dffc2a6c2395a4;hp=78e545aab48e720aef0b3eb2c9ec3d0dfef00a00;hpb=734927d0150e9d43593e5a2aea1fc06613a9d873;p=jalview.git diff --git a/src/jalview/gui/AlignmentPanel.java b/src/jalview/gui/AlignmentPanel.java index 78e545a..fae6dfc 100755 --- a/src/jalview/gui/AlignmentPanel.java +++ b/src/jalview/gui/AlignmentPanel.java @@ -171,7 +171,7 @@ public class AlignmentPanel extends GAlignmentPanel } if(overviewPanel!=null) - overviewPanel.updateOverviewImage(); + overviewPanel.setBoxPosition(); repaint(); } @@ -299,14 +299,23 @@ public class AlignmentPanel extends GAlignmentPanel */ public void setWrapAlignment(boolean wrap) { + av.startSeq = 0; scalePanelHolder.setVisible(!wrap); hscroll.setVisible(!wrap); idwidthAdjuster.setVisible(!wrap); - av.setShowAnnotation(!wrap); - annotationScroller.setVisible(!wrap); - annotationSpaceFillerHolder.setVisible(!wrap); - idSpaceFillerPanel1.setVisible(!wrap); + if(wrap) + { + annotationScroller.setVisible(false); + annotationSpaceFillerHolder.setVisible(false); + } + else if(av.showAnnotation) + { + annotationScroller.setVisible(true); + annotationSpaceFillerHolder.setVisible(true); + } + + idSpaceFillerPanel1.setVisible(!wrap); repaint(); } @@ -432,6 +441,7 @@ public class AlignmentPanel extends GAlignmentPanel */ public void adjustmentValueChanged(AdjustmentEvent evt) { + int oldX = av.getStartRes(); int oldY = av.getStartSeq(); @@ -466,21 +476,28 @@ public class AlignmentPanel extends GAlignmentPanel overviewPanel.setBoxPosition(); } - if (av.getWrapAlignment() || !fastPaint) + int xShift = av.getStartRes() - oldX; + int yShift = av.getStartSeq() - oldY; + + if ( (xShift == 0 && yShift == 0) || + (Math.abs(xShift) > av.getEndRes() - av.getStartRes() + || Math.abs(yShift) > av.getEndSeq() - av.getStartSeq()) + || av.getWrapAlignment() + || !fastPaint) { - repaint(); + // Either no shift at all, or shift greater than visible amount + repaint(); } else { - idPanel.idCanvas.fastPaint(av.getStartSeq() - oldY); - seqPanel.seqCanvas.fastPaint(av.getStartRes() - oldX, - av.getStartSeq() - oldY); + idPanel.idCanvas.fastPaint(yShift); + seqPanel.seqCanvas.fastPaint(xShift, yShift); scalePanel.repaint(); if (av.getShowAnnotation()) { - annotationPanel.fastPaint(av.getStartRes() - oldX); + annotationPanel.fastPaint(xShift); } } }