import java.beans.PropertyChangeEvent;
import java.util.Iterator;
+@SuppressWarnings("serial")
public class SeqCanvas extends Panel implements ViewportListenerI
{
FeatureRenderer fr;
{ ypos - (avcharHeight / 2), ypos - (avcharHeight / 2), ypos - (avcharHeight / 2) + 8 }, 3);
}
}
-
+ // BH 2020.03.19 avoiding g.setClip at all costs
+ g = g.create();
if (g.getClip() == null)
{
- g.setClip(0, 0, cWidth * avcharWidth, canvasHeight);
+ g.clipRect(0, 0, cWidth * avcharWidth, canvasHeight);
}
drawPanel(g, startRes, endx, 0, al.getHeight() - 1, ypos);
- g.setClip(null);
+ // g.setClip(null);
+ g.dispose();
if (av.isShowAnnotation())
{
g.translate(0, cHeight + ypos + 4);
}
}
+ /**
+ * Ensure that a full paint is done next, for whatever reason. This was
+ * necessary for JavaScript; apparently in Java the timing is just right on
+ * multiple threads (EventQueue-0, Consensus, Conservation) that we can get
+ * away with one fast paint before the others, but this ensures that in the
+ * end we get a full paint. Problem arose in relation to copy/paste, where the
+ * paste was not finalized with a full paint.
+ *
+ * @author hansonr 2019.04.17
+ */
+ public void clearFastPaint()
+ {
+ fastPaint = false;
+ }
+
}