JAL-3560 avoiding Graphics.setClip
[jalview.git] / src / jalview / gui / AlignmentPanel.java
index 2f5d83b..d8035bb 100644 (file)
@@ -842,7 +842,6 @@ public class AlignmentPanel extends GAlignmentPanel implements
     }
     if (updateOverview)
     {
-
       if (overviewPanel != null)
       {
         overviewPanel.updateOverviewImage();
@@ -1080,6 +1079,7 @@ public class AlignmentPanel extends GAlignmentPanel implements
   public int printWrappedAlignment(int pageWidth, int pageHeight, int pageNumber,
           Graphics g) throws PrinterException
   {
+
     int annotationHeight = 0;
     if (av.isShowAnnotation())
     {
@@ -1104,6 +1104,8 @@ public class AlignmentPanel extends GAlignmentPanel implements
 
     int totalHeight = cHeight * (maxwidth / resWidth + 1);
 
+    g = g.create();
+
     g.setColor(Color.white);
     g.fillRect(0, 0, pageWidth, pageHeight);
     g.setFont(av.getFont());
@@ -1117,7 +1119,8 @@ public class AlignmentPanel extends GAlignmentPanel implements
      */
     g.translate(0, -pageNumber * pageHeight);
 
-    g.setClip(0, pageNumber * pageHeight, pageWidth, pageHeight);
+    // BH 2020.03.19 avoiding g.setClip
+    g.clipRect(0, pageNumber * pageHeight, pageWidth, pageHeight);
 
     /*
      * draw sequence ids and annotation labels (if shown)
@@ -1130,6 +1133,7 @@ public class AlignmentPanel extends GAlignmentPanel implements
     getSeqPanel().seqCanvas.drawWrappedPanelForPrinting(g, pageWidth - idWidth,
             totalHeight, 0);
 
+    g.dispose();
     if ((pageNumber * pageHeight) < totalHeight)
     {
       return Printable.PAGE_EXISTS;