This is an automated email from the ASF dual-hosted git repository. matthiasblaesing pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/netbeans.git
The following commit(s) were added to refs/heads/master by this push: new f327957 Fix a few cases where rendering hints were handled incorrectly f327957 is described below commit f3279577e7b79506dd41d16268a8b3a76192c797 Author: Tim Boudreau <t...@timboudreau.com> AuthorDate: Sat Aug 24 11:29:36 2019 -0400 Fix a few cases where rendering hints were handled incorrectly --- .../netbeans/swing/tabcontrol/plaf/ColorUtil.java | 2 +- .../src/org/openide/awt/HtmlLabelUI.java | 2 +- .../src/org/openide/awt/HtmlRenderer.java | 26 ++++++++++++++++------ 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/ColorUtil.java b/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/ColorUtil.java index 219d561..6297bf5 100644 --- a/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/ColorUtil.java +++ b/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/ColorUtil.java @@ -180,7 +180,7 @@ final class ColorUtil { RenderingHints.VALUE_TEXT_ANTIALIAS_ON); } } - if (shouldAntialias()) { + if (shouldAntialias() && (hintsMap == null || !hintsMap.containsKey(RenderingHints.KEY_TEXT_ANTIALIASING))) { hintsMap.put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); } diff --git a/platform/openide.awt/src/org/openide/awt/HtmlLabelUI.java b/platform/openide.awt/src/org/openide/awt/HtmlLabelUI.java index eed053c..ead6c60 100644 --- a/platform/openide.awt/src/org/openide/awt/HtmlLabelUI.java +++ b/platform/openide.awt/src/org/openide/awt/HtmlLabelUI.java @@ -561,7 +561,7 @@ class HtmlLabelUI extends LabelUI { public static final boolean gtkShouldAntialias() { if (gtkAA == null) { Object o = Toolkit.getDefaultToolkit().getDesktopProperty("gnome.Xft/Antialias"); //NOI18N - gtkAA = new Integer(1).equals(o) ? Boolean.TRUE : Boolean.FALSE; + gtkAA = Integer.valueOf(1).equals(o); } return gtkAA.booleanValue(); diff --git a/platform/openide.awt/src/org/openide/awt/HtmlRenderer.java b/platform/openide.awt/src/org/openide/awt/HtmlRenderer.java index b56ae87..a5b61cf 100644 --- a/platform/openide.awt/src/org/openide/awt/HtmlRenderer.java +++ b/platform/openide.awt/src/org/openide/awt/HtmlRenderer.java @@ -20,6 +20,7 @@ package org.openide.awt; import java.awt.Color; +import java.awt.EventQueue; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics; @@ -27,20 +28,21 @@ import java.awt.Graphics2D; import java.awt.Rectangle; import java.awt.RenderingHints; import java.awt.Shape; +import java.awt.Toolkit; import java.awt.font.LineMetrics; import java.awt.geom.Area; import java.awt.geom.Rectangle2D; import java.util.Arrays; import java.util.HashSet; +import java.util.LinkedList; +import java.util.Map; import java.util.Set; -import java.util.Stack; import java.util.StringTokenizer; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.Icon; import javax.swing.JLabel; import javax.swing.ListCellRenderer; -import javax.swing.SwingUtilities; import javax.swing.UIManager; import javax.swing.table.TableCellRenderer; import javax.swing.tree.TreeCellRenderer; @@ -192,7 +194,7 @@ public final class HtmlRenderer { /** Stack object used during HTML rendering to hold previous colors in * the case of nested color entries. */ - private static Stack<Color> colorStack = new Stack<Color>(); + private static LinkedList<Color> colorStack = new LinkedList<Color>(); /** * Constant used by {@link #renderString renderString}, {@link #renderPlainString renderPlainString}, @@ -518,6 +520,18 @@ public final class HtmlRenderer { return _renderHTML( s, pos, g, x, y, w, h, f, defaultColor, style, paint, background, false ); } + private static void configureRenderingHints(Graphics graphics) { + Graphics2D g = (Graphics2D) graphics; + Object desktopHints + = Toolkit.getDefaultToolkit().getDesktopProperty("awt.font.desktophints"); + if (desktopHints instanceof Map<?, ?>) { + g.addRenderingHints((Map<?, ?>) desktopHints); + } else if (HtmlLabelUI.antialias) { + g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); + } + + } + /** Implementation of HTML rendering */ static double _renderHTML( String s, int pos, Graphics g, int x, int y, int w, int h, Font f, Color defaultColor, int style, boolean paint, @@ -540,13 +554,11 @@ public final class HtmlRenderer { } //Thread safety - avoid allocating memory for the common case - Stack<Color> _colorStack = SwingUtilities.isEventDispatchThread() ? HtmlRenderer.colorStack : new Stack<Color>(); + LinkedList<Color> _colorStack = EventQueue.isDispatchThread() ? HtmlRenderer.colorStack : new LinkedList<Color>(); g.setColor(defaultColor); g.setFont(f); - if (HtmlLabelUI.antialias && g instanceof Graphics2D) { - ((Graphics2D) g).setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); - } + configureRenderingHints(g); char[] chars = s.toCharArray(); int origX = x; --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org For additional commands, e-mail: commits-h...@netbeans.apache.org For further information about the NetBeans mailing lists, visit: https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists