Index: core/swing/plaf/src/org/netbeans/swing/plaf/aqua/DropShadowBorder.java =================================================================== RCS file: /cvs/core/swing/plaf/src/org/netbeans/swing/plaf/aqua/DropShadowBorder.java,v --- core/swing/plaf/src/org/netbeans/swing/plaf/aqua/DropShadowBorder.java 25 Mar 2005 17:23:17 -0000 1.3 +++ core/swing/plaf/src/org/netbeans/swing/plaf/aqua/DropShadowBorder.java 3 Aug 2005 07:46:29 -0000 @@ -37,6 +37,7 @@ import java.util.Map; import javax.swing.UIManager; import javax.swing.border.Border; +import org.netbeans.swing.plaf.util.UIUtils; /** A translucent drop shadow border class with settable colors and size. * Generally it's a goood idea to use a transparent color as the second @@ -92,7 +93,7 @@ private static final int GAP = ARC / 2; public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { - setupAntialiasing (g); + UIUtils.configureRenderingHints (g); Graphics2D g2d = (Graphics2D) g; Composite comp = g2d.getComposite(); @@ -162,22 +163,5 @@ g2d.setComposite(comp); g2d.setPaint(paint); } - } - - - private static Map hintsMap = null; - private static Map getHints() { - if (hintsMap == null) { - hintsMap = new HashMap(); - hintsMap.put(RenderingHints.KEY_TEXT_ANTIALIASING, - RenderingHints.VALUE_TEXT_ANTIALIAS_ON); - hintsMap.put(RenderingHints.KEY_ANTIALIASING, - RenderingHints.VALUE_ANTIALIAS_ON); - } - return hintsMap; - } - - public static final void setupAntialiasing(Graphics g) { - ((Graphics2D) g).addRenderingHints(getHints()); - } + } } Index: core/swing/plaf/src/org/netbeans/swing/plaf/util/UIUtils.java =================================================================== RCS file: /cvs/core/swing/plaf/src/org/netbeans/swing/plaf/util/UIUtils.java,v --- core/swing/plaf/src/org/netbeans/swing/plaf/util/UIUtils.java 13 Mar 2005 10:24:47 -0000 1.5 +++ core/swing/plaf/src/org/netbeans/swing/plaf/util/UIUtils.java 3 Aug 2005 07:46:30 -0000 @@ -61,6 +61,8 @@ public static final Map getHints() { //XXX should do this in update() in the UI instead + //Note for this method we do NOT want only text antialiasing - we + //want antialiased curves. if (hintsMap == null) { hintsMap = new HashMap(); hintsMap.put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); @@ -71,7 +73,9 @@ public static final void configureRenderingHints (Graphics g) { if (noAntialias) return; - ((Graphics2D)g).addRenderingHints(getHints()); + Graphics2D g2d = (Graphics2D) g; + + g2d.addRenderingHints(getHints()); } public static Image loadImage (String s) { Index: core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/AbstractViewTabDisplayerUI.java =================================================================== RCS file: /cvs/core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/AbstractViewTabDisplayerUI.java,v --- core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/AbstractViewTabDisplayerUI.java 30 Mar 2005 11:48:25 -0000 1.24 +++ core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/AbstractViewTabDisplayerUI.java 3 Aug 2005 07:46:31 -0000 @@ -130,7 +130,7 @@ public void paint(Graphics g, JComponent c) { if (ColorUtil.shouldAntialias()) { - ColorUtil.setupAntialiasing(g); + ColorUtil.setupAntialiasing(g, false); } TabData tabData; int x, y, width, height; Index: core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/AquaViewTabDisplayerUI.java =================================================================== RCS file: /cvs/core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/AquaViewTabDisplayerUI.java,v --- core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/AquaViewTabDisplayerUI.java 20 Apr 2005 07:02:33 -0000 1.19 +++ core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/AquaViewTabDisplayerUI.java 3 Aug 2005 07:46:31 -0000 @@ -82,7 +82,7 @@ } public void paint(Graphics g, JComponent c) { - ColorUtil.setupAntialiasing(g); + ColorUtil.setupAntialiasing(g, false); super.paint(g, c); paintBottomBorder(g, c); } Index: core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/BasicTabDisplayerUI.java =================================================================== RCS file: /cvs/core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/BasicTabDisplayerUI.java,v --- core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/BasicTabDisplayerUI.java 6 Apr 2005 02:08:53 -0000 1.10 +++ core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/BasicTabDisplayerUI.java 3 Aug 2005 07:46:32 -0000 @@ -331,7 +331,7 @@ assert c == displayer; if (isAntialiased()) { - ColorUtil.setupAntialiasing(g); + ColorUtil.setupAntialiasing(g, false); } boolean showClose = displayer.isShowCloseButton(); Index: core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/ChicletWrapper.java =================================================================== RCS file: /cvs/core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/ChicletWrapper.java,v --- core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/ChicletWrapper.java 10 Jul 2005 07:47:12 -0000 1.2 +++ core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/ChicletWrapper.java 3 Aug 2005 07:46:32 -0000 @@ -127,7 +127,7 @@ chiclet.setState (state); Graphics g = img.getGraphics(); g.translate (-bounds.x, -bounds.y); - ColorUtil.setupAntialiasing(g); + ColorUtil.setupAntialiasing(g, true); chiclet.draw((Graphics2D)g); g.translate (bounds.x, bounds.y); return img; Index: core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/ColorUtil.java =================================================================== RCS file: /cvs/core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/ColorUtil.java,v --- core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/ColorUtil.java 13 Mar 2005 10:24:47 -0000 1.6 +++ core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/ColorUtil.java 3 Aug 2005 07:46:32 -0000 @@ -29,7 +29,7 @@ */ final class ColorUtil { private static Map gpCache = null; - private static HashMap hintsMap = null; + private static Map hintsMap = null; private static final boolean noGpCache = Boolean.getBoolean( "netbeans.winsys.nogpcache"); //NOI18N private static final boolean noAntialias = @@ -159,20 +159,27 @@ return result; } - private static Map getHints() { + static final Map getHints() { + //XXX We REALLY need to put this in a graphics utils lib if (hintsMap == null) { - hintsMap = new HashMap(); - hintsMap.put(RenderingHints.KEY_TEXT_ANTIALIASING, - RenderingHints.VALUE_TEXT_ANTIALIAS_ON); - hintsMap.put(RenderingHints.KEY_ANTIALIASING, - RenderingHints.VALUE_ANTIALIAS_ON); + //Thanks to Phil Race for making this possible + hintsMap = (Map)(Toolkit.getDefaultToolkit().getDesktopProperty("awt.font.desktophints")); //NOI18N + if (hintsMap == null) { + hintsMap = new HashMap(); + hintsMap.put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); + } } return hintsMap; } - public static final void setupAntialiasing(Graphics g) { + public static final void setupAntialiasing(Graphics g, boolean lines) { if (noAntialias) return; - ((Graphics2D) g).addRenderingHints(getHints()); + Graphics2D g2d = (Graphics2D) g; + g2d.addRenderingHints(getHints()); + if (lines) { + g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, + RenderingHints.VALUE_ANTIALIAS_ON); + } } private static final boolean antialias = Boolean.getBoolean( Index: core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/GtkSlidingButtonUI.java =================================================================== RCS file: /cvs/core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/GtkSlidingButtonUI.java,v --- core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/GtkSlidingButtonUI.java 2 Sep 2004 13:43:09 -0000 1.3 +++ core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/GtkSlidingButtonUI.java 3 Aug 2005 07:46:32 -0000 @@ -81,7 +81,7 @@ public void paint(Graphics g, JComponent c) { if (ColorUtil.shouldAntialias()) { - ColorUtil.setupAntialiasing(g); + ColorUtil.setupAntialiasing(g, false); } AbstractButton button = (AbstractButton)c; Index: core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/MetalSlidingButtonUI.java =================================================================== RCS file: /cvs/core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/MetalSlidingButtonUI.java,v --- core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/MetalSlidingButtonUI.java 18 Nov 2004 13:31:00 -0000 1.4 +++ core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/MetalSlidingButtonUI.java 3 Aug 2005 07:46:32 -0000 @@ -81,7 +81,7 @@ public void paint(Graphics g, JComponent c) { if (ColorUtil.shouldAntialias()) { - ColorUtil.setupAntialiasing(g); + ColorUtil.setupAntialiasing(g, false); } AbstractButton button = (AbstractButton)c; hiddenToggle.setBorderPainted(true); Index: core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/WinClassicViewTabDisplayerUI.java =================================================================== RCS file: /cvs/core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/WinClassicViewTabDisplayerUI.java,v --- core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/WinClassicViewTabDisplayerUI.java 29 Mar 2005 10:48:23 -0000 1.17 +++ core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/WinClassicViewTabDisplayerUI.java 3 Aug 2005 07:46:32 -0000 @@ -94,7 +94,7 @@ */ public void paint(Graphics g, JComponent c) { if (ColorUtil.shouldAntialias()) { - ColorUtil.setupAntialiasing(g); + ColorUtil.setupAntialiasing(g, false); } Color col = c.getBackground(); if (col != null) { Index: core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/WinXPSlidingButtonUI.java =================================================================== RCS file: /cvs/core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/WinXPSlidingButtonUI.java,v --- core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/WinXPSlidingButtonUI.java 18 Nov 2004 13:31:00 -0000 1.3 +++ core/swing/tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/WinXPSlidingButtonUI.java 3 Aug 2005 07:46:33 -0000 @@ -91,7 +91,7 @@ public void paint(Graphics g, JComponent c) { if (ColorUtil.shouldAntialias()) { - ColorUtil.setupAntialiasing(g); + ColorUtil.setupAntialiasing(g, false); } AbstractButton button = (AbstractButton)c; hiddenToggle.setBorderPainted(button.isBorderPainted()); Index: editor/libsrc/org/netbeans/editor/EditorUI.java =================================================================== RCS file: /cvs/editor/libsrc/org/netbeans/editor/EditorUI.java,v --- editor/libsrc/org/netbeans/editor/EditorUI.java 30 Jun 2005 14:11:09 -0000 1.75 +++ editor/libsrc/org/netbeans/editor/EditorUI.java 3 Aug 2005 07:46:51 -0000 @@ -517,7 +517,36 @@ } if (settingName == null || SettingsNames.RENDERING_HINTS.equals(settingName)) { - Object value = Settings.getValue(kitClass, SettingsNames.RENDERING_HINTS); + //JDK 1.6 post b47 delivers subpixel antialiasing settings this way + Object value = (Map)(Toolkit.getDefaultToolkit().getDesktopProperty("awt.font.desktophints")); //NOI18N + + //is this ever really not a Map? + Object userSetHints = Settings.getValue(kitClass, SettingsNames.RENDERING_HINTS); + + if (value == null) { + if (userSetHints instanceof Map) { + value = userSetHints; + } + } else { + if (userSetHints instanceof Map) { + Map uhints = (Map) userSetHints; + Map pdefaults = (Map) value; + //In the event of a disagreement, that means the checkbox state + //wins + if (uhints.get(RenderingHints.KEY_TEXT_ANTIALIASING) != RenderingHints.VALUE_TEXT_ANTIALIAS_DEFAULT) { + //We don't need to know JDK 1.6 values to do a negative test: + boolean defaultAntialiased = pdefaults.get(RenderingHints.KEY_TEXT_ANTIALIASING) != null && + pdefaults.get(RenderingHints.KEY_TEXT_ANTIALIASING) != RenderingHints.VALUE_ANTIALIAS_OFF; + boolean settingAntialiased = uhints.get(RenderingHints.KEY_TEXT_ANTIALIASING) != null && + uhints.get(RenderingHints.KEY_TEXT_ANTIALIASING) != RenderingHints.VALUE_ANTIALIAS_OFF; + //In the event of a disagreement, the saved settings win + if (defaultAntialiased != settingAntialiased) { + value = uhints; + } + } + } + } + renderingHints = (value instanceof Map) ? (Map)value : null; } Index: editor/libsrc/org/netbeans/editor/FoldingToolTip.java =================================================================== RCS file: /cvs/editor/libsrc/org/netbeans/editor/FoldingToolTip.java,v --- editor/libsrc/org/netbeans/editor/FoldingToolTip.java 23 Jul 2004 14:53:28 -0000 1.7 +++ editor/libsrc/org/netbeans/editor/FoldingToolTip.java 3 Aug 2005 07:46:51 -0000 @@ -17,7 +17,7 @@ import java.awt.Dimension; import java.awt.Graphics; import java.awt.Rectangle; -import java.awt.Shape; +import java.awt.Toolkit; import java.util.Map; import javax.swing.JPanel; import javax.swing.border.LineBorder; @@ -72,7 +72,13 @@ private void updateRenderingHints(Graphics g){ JTextComponent comp = editorUI.getComponent(); if (comp == null) return; - Object value = Settings.getValue(Utilities.getKitClass(comp), SettingsNames.RENDERING_HINTS); + Object value = (Map)(Toolkit.getDefaultToolkit().getDesktopProperty("awt.font.desktophints")); //NOI18N + //Don't bother seeing if the hints are explicitly turned off (if they + //even can be) as in EditorUI - it's a tooltip, desktop default is + //fine + if (value == null) { + value = Settings.getValue(Utilities.getKitClass(comp), SettingsNames.RENDERING_HINTS); + } Map renderingHints = (value instanceof Map) ? (java.util.Map)value : null; // Possibly apply the rendering hints Index: editor/libsrc/org/netbeans/editor/GlyphGutter.java =================================================================== RCS file: /cvs/editor/libsrc/org/netbeans/editor/GlyphGutter.java,v --- editor/libsrc/org/netbeans/editor/GlyphGutter.java 8 Jun 2005 13:48:21 -0000 1.46 +++ editor/libsrc/org/netbeans/editor/GlyphGutter.java 3 Aug 2005 07:46:52 -0000 @@ -167,7 +167,15 @@ private void updateRenderingHints(){ JTextComponent comp = editorUI.getComponent(); if (comp == null) return; - Object value = Settings.getValue(Utilities.getKitClass(comp), SettingsNames.RENDERING_HINTS); + Object value = (Map)(Toolkit.getDefaultToolkit().getDesktopProperty( + "awt.font.desktophints")); //NOI18N + //Don't bother seeing if the hints are explicitly turned off (if they + //even can be) as in EditorUI - it's a tooltip, desktop default is + //fine + if (value == null) { + value = Settings.getValue(Utilities.getKitClass(comp), + SettingsNames.RENDERING_HINTS); + } renderingHints = (value instanceof Map) ? (java.util.Map)value : null; } Index: editor/src/org/netbeans/modules/editor/options/BaseOptions.java =================================================================== RCS file: /cvs/editor/src/org/netbeans/modules/editor/options/BaseOptions.java,v --- editor/src/org/netbeans/modules/editor/options/BaseOptions.java 30 Jun 2005 14:11:11 -0000 1.104 +++ editor/src/org/netbeans/modules/editor/options/BaseOptions.java 3 Aug 2005 07:46:56 -0000 @@ -180,15 +180,16 @@ private static final boolean debugFormat = Boolean.getBoolean("netbeans.debug.editor.format"); // NOI18N - private static final Map textAntialiasingHintsMap = new HashMap(); + private static final Map textAntialiasingHintsMap; static { - // Commented due to issue 59273 - // textAntialiasingHintsMap.put(RenderingHints.KEY_ANTIALIASING, - // RenderingHints.VALUE_ANTIALIAS_ON); - textAntialiasingHintsMap.put(RenderingHints.KEY_TEXT_ANTIALIASING, - RenderingHints.VALUE_TEXT_ANTIALIAS_ON); - // textAntialiasingHintsMap.put(RenderingHints.KEY_FRACTIONALMETRICS, - // RenderingHints.VALUE_FRACTIONALMETRICS_OFF); + Map defaultHints = (Map)(Toolkit.getDefaultToolkit().getDesktopProperty( + "awt.font.desktophints")); //NOI18N + textAntialiasingHintsMap = defaultHints == null ? (Map) new HashMap() : + defaultHints; + if (defaultHints == null) { + textAntialiasingHintsMap.put(RenderingHints.KEY_TEXT_ANTIALIASING, + RenderingHints.VALUE_TEXT_ANTIALIAS_ON); + } } Index: objectbrowser/navigator/src/org/netbeans/modules/navigator/strings/WeightedStringPainterImpl.java =================================================================== RCS file: /cvs/objectbrowser/navigator/src/org/netbeans/modules/navigator/strings/WeightedStringPainterImpl.java,v --- objectbrowser/navigator/src/org/netbeans/modules/navigator/strings/WeightedStringPainterImpl.java 17 Mar 2005 16:35:19 -0000 1.5 +++ objectbrowser/navigator/src/org/netbeans/modules/navigator/strings/WeightedStringPainterImpl.java 3 Aug 2005 07:48:21 -0000 @@ -61,12 +61,16 @@ //Fudge the spacing for bold fonts - chars are wider maxChars = Math.max ( 2, maxChars - ( maxChars / 3 ) ); } - // antialiase if swing.aatext is enabled + // antialias if swing.aatext is enabled Object oldAAValue = null; - if (Boolean.getBoolean("swing.aatext")) { - Graphics2D g2 = (Graphics2D)g; + + Map rhints = (Map)(Toolkit.getDefaultToolkit().getDesktopProperty("awt.font.desktophints")); //NOI18N + Graphics2D g2 = (Graphics2D)g; + if (rhints == null && Boolean.getBoolean("swing.aatext")) { oldAAValue = g2.getRenderingHint( RenderingHints.KEY_TEXT_ANTIALIASING); g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); + } else if (rhints != null) { + g2.addRenderingHints(rhints); } char[] seg = first ( ws ); @@ -94,11 +98,6 @@ x += dist; seg = next ( ws ); } - // restore previous aa setting - if (oldAAValue != null) { - ((Graphics2D)g).setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, oldAAValue); - } - } private void setupGraphics (Graphics g, int type, Font defFont, Color defFg, boolean useColors) { Index: openide/awt/src/org/openide/awt/HtmlLabelUI.java =================================================================== RCS file: /cvs/openide/awt/src/org/openide/awt/HtmlLabelUI.java,v --- openide/awt/src/org/openide/awt/HtmlLabelUI.java 7 Jul 2005 11:58:39 -0000 1.3 +++ openide/awt/src/org/openide/awt/HtmlLabelUI.java 3 Aug 2005 07:48:26 -0000 @@ -160,11 +160,15 @@ } static final Map getHints() { + //XXX We REALLY need to put this in a graphics utils lib if (hintsMap == null) { - hintsMap = new HashMap(); - hintsMap.put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); + //Thanks to Phil Race for making this possible + hintsMap = (Map)(Toolkit.getDefaultToolkit().getDesktopProperty("awt.font.desktophints")); //NOI18N + if (hintsMap == null) { + hintsMap = new HashMap(); + hintsMap.put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); + } } - return hintsMap; } Index: openide/loaders/src/org/openide/awt/Toolbar.java =================================================================== RCS file: /cvs/openide/loaders/src/org/openide/awt/Toolbar.java,v --- openide/loaders/src/org/openide/awt/Toolbar.java 3 May 2005 15:52:33 -0000 1.32 +++ openide/loaders/src/org/openide/awt/Toolbar.java 3 Aug 2005 07:48:30 -0000 @@ -1073,12 +1073,16 @@ } } - private static java.util.HashMap hintsMap = null; - static final java.util.Map getHints() { + private static java.util.Map hintsMap = null; + static final Map getHints() { + //XXX We REALLY need to put this in a graphics utils lib if (hintsMap == null) { - hintsMap = new java.util.HashMap(); - hintsMap.put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); - hintsMap.put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); + //Thanks to Phil Race for making this possible + hintsMap = (Map)(Toolkit.getDefaultToolkit().getDesktopProperty("awt.font.desktophints")); //NOI18N + if (hintsMap == null) { + hintsMap = new HashMap(); + hintsMap.put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); + } } return hintsMap; }