X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FSeqCanvas.java;h=076ce5b7c0e5b4f69a8d0a9fa6ad2d585259bcc3;hb=1901363236478f0d50feda5a2f5835036ff04615;hp=c99041baaba1066ee692eb0ca1b54a830a1e20a2;hpb=b1f1dafab890809e47d9b3e7b54aa300ebe6d7a1;p=jalview.git diff --git a/src/jalview/gui/SeqCanvas.java b/src/jalview/gui/SeqCanvas.java index c99041b..076ce5b 100755 --- a/src/jalview/gui/SeqCanvas.java +++ b/src/jalview/gui/SeqCanvas.java @@ -75,7 +75,7 @@ public class SeqCanvas extends JPanel implements ViewportListenerI private final SequenceRenderer seqRdr; - private boolean fastPaint = false; + boolean fastPaint = false; private boolean fastpainting = false; @@ -288,8 +288,6 @@ public class SeqCanvas extends JPanel implements ViewportListenerI public void fastPaint(int horizontal, int vertical) { - // System.err.println("<>SeqCanvas paintComponent " + fastPaint + "\n" - // + getVisibleRect() + "\n" + g.getClipBounds()); - // System.err.println(">>>>>>>>>>>>>>>>SeqCanvas paintComponent " - // + startRes + " " + endRes + " " + startSeq + " " + endSeq); + // [JAL-3226] problem that JavaScript (or Java) may consolidate multiple + // repaint() requests in unpredictable ways. In this case, the issue was + // that in response to a CTRL-C/CTRL-V paste request, in Java a fast + // repaint request preceded two full requests, thus resulting + // in a full request for paint. In constrast, in JavaScript, the three + // requests were bundled together into one, so the fastPaint flag was + // still present for the second and third request. + // + // This resulted in incomplete painting. + // + // The solution was to set seqCanvas.fastPaint and idCanvas.fastPaint false + // in PaintRefresher when the target to be painted is one of those two + // components. + // + // BH 2019.04.22 + // + // An initial idea; can be removed once we determine this issue is closed: + // if (av.isFastPaintDisabled()) + // { + // fastPaint = false; + // } + Rectangle vis, clip; if (img != null && (fastPaint @@ -413,25 +424,21 @@ public class SeqCanvas extends JPanel implements ViewportListenerI || vis.height != clip.height)) { g.drawImage(img, 0, 0, this); - // System.err.println(">>>>>>>>>>>>>>>>SeqCanvas paintComponent FAST"); drawSelectionGroup((Graphics2D) g, startRes, endRes, startSeq, endSeq); fastPaint = false; - // System.out.println("SeqCanvas fast paint"); } else { - // System.out.println("SeqCanvas full paint"); - /* - * img is a cached version of the last view we drew. - * If we have no img or the size has changed, make a new one - */ + // img is a cached version of the last view we drew. + // If we have no img or the size has changed, make a new one. + // if (img == null || width != img.getWidth() || height != img.getHeight()) { img = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); } - + Graphics2D gg = (Graphics2D) img.getGraphics(); gg.setFont(av.getFont());