X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.diagram%2Fsrc%2Forg%2Fsimantics%2Fdiagram%2Felements%2FTextNode.java;h=0b33ae3c4f65dda2250adf361cfeb7868d872056;hp=4554decee2c01a41b032be9dab5c77ecec2af2f7;hb=96ae58fda842dcd8266192eeb1399324b092154a;hpb=c26409b1caf2f1e560d37c5befd11b442399c3fe diff --git a/bundles/org.simantics.diagram/src/org/simantics/diagram/elements/TextNode.java b/bundles/org.simantics.diagram/src/org/simantics/diagram/elements/TextNode.java index 4554decee..0b33ae3c4 100644 --- a/bundles/org.simantics.diagram/src/org/simantics/diagram/elements/TextNode.java +++ b/bundles/org.simantics.diagram/src/org/simantics/diagram/elements/TextNode.java @@ -51,6 +51,8 @@ import org.simantics.scenegraph.LoaderNode; import org.simantics.scenegraph.ScenegraphUtils; import org.simantics.scenegraph.g2d.G2DNode; import org.simantics.scenegraph.g2d.G2DPDFRenderingHints; +import org.simantics.scenegraph.g2d.G2DRenderingHints; +import org.simantics.scenegraph.g2d.G2DRenderingHints.TextRenderingMode; import org.simantics.scenegraph.g2d.events.Event; import org.simantics.scenegraph.g2d.events.EventTypes; import org.simantics.scenegraph.g2d.events.KeyEvent.KeyPressedEvent; @@ -60,7 +62,6 @@ import org.simantics.scenegraph.g2d.events.MouseEvent.MouseClickEvent; import org.simantics.scenegraph.g2d.events.MouseEvent.MouseDoubleClickedEvent; import org.simantics.scenegraph.g2d.events.MouseEvent.MouseDragBegin; import org.simantics.scenegraph.g2d.events.MouseEvent.MouseMovedEvent; -import org.simantics.scenegraph.g2d.events.NodeEventHandler; import org.simantics.scenegraph.g2d.events.command.CommandEvent; import org.simantics.scenegraph.g2d.events.command.Commands; import org.simantics.scenegraph.utils.GeometryUtils; @@ -710,7 +711,8 @@ public class TextNode extends G2DNode implements IDynamicSelectionPainterNode, L // PDF PdfWriter writer = (PdfWriter) g.getRenderingHint(G2DPDFRenderingHints.KEY_PDF_WRITER); - boolean isRenderingPdf = writer != null; + TextRenderingMode renderingMode = (TextRenderingMode) g.getRenderingHint(G2DRenderingHints.KEY_TEXT_RENDERING_MODE); + boolean renderAsText = writer != null || renderingMode == TextRenderingMode.AS_TEXT; /// PDF Color backgroundColor = hasState(STATE_VALID) ? this.backgroundColor : Color.red; @@ -730,7 +732,7 @@ public class TextNode extends G2DNode implements IDynamicSelectionPainterNode, L // Base text g.setColor(color); - renderText(g, xOffset, isRenderingPdf); + renderText(g, xOffset, renderAsText); Shape clip = g.getClip(); @@ -744,7 +746,7 @@ public class TextNode extends G2DNode implements IDynamicSelectionPainterNode, L g.fill(selShape); g.setColor(Color.WHITE); // #6459: render as text in PDF and paths on screen - if (isRenderingPdf) + if (renderAsText) g.drawString(line.getText(), 0, 0); else line.layout.draw(g, 0, 0); @@ -760,7 +762,7 @@ public class TextNode extends G2DNode implements IDynamicSelectionPainterNode, L if (renderText) { g.setColor(color); - renderText(g, 0, isRenderingPdf); + renderText(g, 0, renderAsText); } } @@ -823,11 +825,11 @@ public class TextNode extends G2DNode implements IDynamicSelectionPainterNode, L } } } - private void renderText(Graphics2D g, float xOffset, boolean isRenderingPdf) { + private void renderText(Graphics2D g, float xOffset, boolean renderAsText) { //g.draw(tightBoundsCache); // DEBUG for (Line line : lines) { // #6459: render as text in PDF and paths on screen - if (isRenderingPdf) + if (renderAsText) g.drawString(line.getText(), line.alignedPosX + xOffset, line.alignedPosY); else line.layout.draw(g, line.alignedPosX + xOffset, line.alignedPosY); @@ -1803,7 +1805,6 @@ public class TextNode extends G2DNode implements IDynamicSelectionPainterNode, L protected boolean mouseDragged(MouseDragBegin e) { if (isHovering() && (isControlDown(e) || isShiftDown(e)) - && e.context instanceof NodeEventHandler && (dataRVI != null || text != null)) { List trs = new ArrayList<>(2);