]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/nodes/FlagNode.java
Added cleaner rendering hint to decide text rendering mode: text/paths
[simantics/platform.git] / bundles / org.simantics.scenegraph / src / org / simantics / scenegraph / g2d / nodes / FlagNode.java
index 598e130091391303febf5b14cbe039e4bda3ef2e..756804f7dc4e900c3d8ee2e66bb57ed3caf477f2 100644 (file)
@@ -28,8 +28,11 @@ import java.util.Arrays;
 
 import org.simantics.scenegraph.g2d.G2DNode;
 import org.simantics.scenegraph.g2d.G2DPDFRenderingHints;
+import org.simantics.scenegraph.g2d.G2DPDFRenderingHints.TextRenderingMode;
 import org.simantics.scenegraph.utils.GeometryUtils;
 
+import com.lowagie.text.pdf.PdfWriter;
+
 public class FlagNode extends G2DNode {
 
     private static final long          serialVersionUID = -1716729504104107151L;
@@ -310,7 +313,8 @@ public class FlagNode extends G2DNode {
             lineDist *= gScaleRecip;
             double y = startY;
             double textAreaWidth = textArea.getWidth() * gScaleRecip;
-            boolean isRenderingPdf = g.getRenderingHint(G2DPDFRenderingHints.KEY_PDF_WRITER) != null;
+            boolean renderAsText = g.getRenderingHint(G2DPDFRenderingHints.KEY_PDF_WRITER) != null
+                    || g.getRenderingHint(G2DPDFRenderingHints.KEY_TEXT_RENDERING_MODE) == TextRenderingMode.AS_TEXT;
 
             for (int i = 0; i < flagText.length; ++i) {
                 //String line = flagText[i];
@@ -343,7 +347,7 @@ public class FlagNode extends G2DNode {
                     System.out.println(" DRAW: '" + flagText[i] + "' with " + g.getTransform());
 
                 // #6459: render as text in PDF and paths on screen
-                if (isRenderingPdf)
+                if (renderAsText)
                     g.drawString(flagText[i], (float) x, (float) y);
                 else
                     textLayout[i].draw(g, (float) x, (float) y);