diff --git a/platform/editor-ui-api/src/com/intellij/ide/ui/LCDRenderingScope.java b/platform/editor-ui-api/src/com/intellij/ide/ui/LCDRenderingScope.java new file mode 100644 index 000000000000..de9ca3dfcf17 --- /dev/null +++ b/platform/editor-ui-api/src/com/intellij/ide/ui/LCDRenderingScope.java @@ -0,0 +1,80 @@ +/* + * Copyright 2000-2015 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intellij.ide.ui; + +import java.awt.*; + +public enum LCDRenderingScope { + IDE, + EXCLUDING_EDITOR, + OFF; + + public static LCDRenderingScope getWithLongestName() { + return IDE; + } + + public static Object getKeyForCurrentScope(boolean inEditor) { + Object renderingHint = RenderingHints.VALUE_TEXT_ANTIALIAS_OFF; + + UISettings uiSettings = UISettings.getInstance(); + + if (uiSettings != null && uiSettings.ANTIALIASING_IN_IDE) { + switch (uiSettings.LCD_RENDERING_SCOPE) { + case IDE: + renderingHint = RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB; + break; + case EXCLUDING_EDITOR: + if (!inEditor) { + renderingHint = RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB; + break; + } + case OFF: + renderingHint = RenderingHints.VALUE_TEXT_ANTIALIAS_ON; + break; + } + } + return renderingHint; + } + + @Override + public String toString() { + String description ; + switch (this) { + case IDE: + description = "LCD Rendering in IDE and Editor"; + break; + case EXCLUDING_EDITOR: + description = "LCD Rendering in IDE"; + break; + case OFF: + description = "Without LCD rendering"; + break; + default: + description = "LCD Rendering in IDE"; + } + return description; + } + + public static boolean shouldRenderEditor(LCDRenderingScope scope) { + if (!UISettings.getInstance().ANTIALIASING_IN_IDE) return false; + switch (scope) { + case IDE: + return true; + default: + return false; + } + } +} diff --git a/platform/editor-ui-api/src/com/intellij/ide/ui/UISettings.java b/platform/editor-ui-api/src/com/intellij/ide/ui/UISettings.java index 10a2107bf18f..b18a959b1dec 100644 --- a/platform/editor-ui-api/src/com/intellij/ide/ui/UISettings.java +++ b/platform/editor-ui-api/src/com/intellij/ide/ui/UISettings.java @@ -95,7 +95,10 @@ public class UISettings extends SimpleModificationTracker implements PersistentS public boolean CLOSE_NON_MODIFIED_FILES_FIRST = false; public boolean ACTIVATE_MRU_EDITOR_ON_CLOSE = false; public boolean ACTIVATE_RIGHT_EDITOR_ON_CLOSE = false; + @Deprecated public boolean ANTIALIASING_IN_EDITOR = true; + public boolean ANTIALIASING_IN_IDE = ANTIALIASING_IN_EDITOR; + public LCDRenderingScope LCD_RENDERING_SCOPE = LCDRenderingScope.IDE; public boolean USE_LCD_RENDERING_IN_EDITOR = true; public boolean MOVE_MOUSE_ON_DEFAULT_BUTTON = false; public boolean ENABLE_ALPHA_MODE = false; @@ -254,47 +257,31 @@ public class UISettings extends SimpleModificationTracker implements PersistentS fireUISettingsChanged(); } - private static final boolean DEFAULT_ALIASING = - SystemProperties.getBooleanProperty("idea.use.default.antialiasing.in.editor", false); - private static final boolean FORCE_USE_FRACTIONAL_METRICS = + public static final boolean FORCE_USE_FRACTIONAL_METRICS = SystemProperties.getBooleanProperty("idea.force.use.fractional.metrics", false); + public static void setupFractionalMetrics(final Graphics2D g2d) { + if (FORCE_USE_FRACTIONAL_METRICS) { + g2d.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON); + } + } + + /* This method must not be used for set up antialiasing for editor components + */ public static void setupAntialiasing(final Graphics g) { - if (DEFAULT_ALIASING) return; Graphics2D g2d = (Graphics2D)g; UISettings uiSettings = getInstance(); - g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF); + g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); - if (!isRemoteDesktopConnected() && UIUtil.isRetina()) { - g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); - } else { - Toolkit tk = Toolkit.getDefaultToolkit(); - //noinspection HardCodedStringLiteral - Map map = (Map)tk.getDesktopProperty("awt.font.desktophints"); - if (map != null) { - if (isRemoteDesktopConnected()) { - g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_DEFAULT); - } - else { - g2d.addRenderingHints(map); - } - } - - if (FORCE_USE_FRACTIONAL_METRICS) { - g2d.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON); - } - - } - - if (uiSettings != null && uiSettings.ANTIALIASING_IN_EDITOR) { - g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, uiSettings.USE_LCD_RENDERING_IN_EDITOR ? - RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB : - RenderingHints.VALUE_TEXT_ANTIALIAS_ON); + if (uiSettings != null) { + g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, LCDRenderingScope.getKeyForCurrentScope(false)); } else { g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_OFF); } + + setupFractionalMetrics(g2d); } /** diff --git a/platform/lang-impl/src/com/intellij/application/options/editor/EditorAppearanceConfigurable.form b/platform/lang-impl/src/com/intellij/application/options/editor/EditorAppearanceConfigurable.form index e81b8090b01b..dee99e97b52d 100644 --- a/platform/lang-impl/src/com/intellij/application/options/editor/EditorAppearanceConfigurable.form +++ b/platform/lang-impl/src/com/intellij/application/options/editor/EditorAppearanceConfigurable.form @@ -1,6 +1,6 @@
- + @@ -10,12 +10,12 @@ - + - + @@ -23,7 +23,7 @@ - + @@ -32,7 +32,7 @@ - + @@ -40,7 +40,7 @@ - + @@ -48,7 +48,7 @@ - + @@ -58,7 +58,7 @@ - + @@ -68,7 +68,7 @@ - + @@ -78,7 +78,7 @@ - + @@ -86,7 +86,7 @@ - + @@ -94,23 +94,15 @@ - + - - - - - - - - - + @@ -119,7 +111,7 @@ - + @@ -148,20 +140,12 @@ - + - - - - - - - - diff --git a/platform/lang-impl/src/com/intellij/application/options/editor/EditorAppearanceConfigurable.java b/platform/lang-impl/src/com/intellij/application/options/editor/EditorAppearanceConfigurable.java index 4676c634b042..62acd2103353 100644 --- a/platform/lang-impl/src/com/intellij/application/options/editor/EditorAppearanceConfigurable.java +++ b/platform/lang-impl/src/com/intellij/application/options/editor/EditorAppearanceConfigurable.java @@ -60,19 +60,19 @@ public class EditorAppearanceConfigurable extends CompositeConfigurable searchMatches = new ArrayList(); - UIUtil.applyRenderingHints(g); + UISettings.setupAntialiasing(g); applyAdditionalHints(g); final Font ownFont = getFont(); if (ownFont != null) { diff --git a/platform/platform-api/src/com/intellij/ui/tabs/impl/TabLabel.java b/platform/platform-api/src/com/intellij/ui/tabs/impl/TabLabel.java index 6f0ae5e8282d..854ca32c8b4c 100644 --- a/platform/platform-api/src/com/intellij/ui/tabs/impl/TabLabel.java +++ b/platform/platform-api/src/com/intellij/ui/tabs/impl/TabLabel.java @@ -156,9 +156,7 @@ public class TabLabel extends JPanel { @Override protected void applyAdditionalHints(@NotNull Graphics2D g) { - if (!SystemInfo.isJavaVersionAtLeast("1.7") && g.getComposite() instanceof AlphaComposite && (((AlphaComposite)g.getComposite()).getAlpha() < 1)) { - g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_GASP); - } + UISettings.setupAntialiasing(g); } }; label.setOpaque(false); diff --git a/platform/platform-api/src/com/intellij/ui/tabs/impl/singleRow/MoreTabsIcon.java b/platform/platform-api/src/com/intellij/ui/tabs/impl/singleRow/MoreTabsIcon.java index 45480988a740..7eef9f3c1c64 100644 --- a/platform/platform-api/src/com/intellij/ui/tabs/impl/singleRow/MoreTabsIcon.java +++ b/platform/platform-api/src/com/intellij/ui/tabs/impl/singleRow/MoreTabsIcon.java @@ -16,6 +16,7 @@ package com.intellij.ui.tabs.impl.singleRow; import com.intellij.icons.AllIcons; +import com.intellij.ide.ui.UISettings; import com.intellij.ui.ColorUtil; import com.intellij.ui.JBColor; import com.intellij.util.ui.GraphicsUtil; @@ -46,7 +47,7 @@ public abstract class MoreTabsIcon { AllIcons.General.MoreTabs.paintIcon(c, graphics, iconX, iconY); Graphics g = graphics.create(); try { - GraphicsUtil.setupAntialiasing(g, true, true); + UISettings.setupAntialiasing(g); UIUtil.drawStringWithHighlighting(g, String.valueOf(myCounter), iconX + AllIcons.General.MoreTabs.getIconWidth() + 2, iconY + AllIcons.General.MoreTabs.getIconHeight() - 5, diff --git a/platform/platform-api/src/com/intellij/ui/treeStructure/Tree.java b/platform/platform-api/src/com/intellij/ui/treeStructure/Tree.java index e79b8ac77603..f63b457222f0 100644 --- a/platform/platform-api/src/com/intellij/ui/treeStructure/Tree.java +++ b/platform/platform-api/src/com/intellij/ui/treeStructure/Tree.java @@ -16,6 +16,7 @@ package com.intellij.ui.treeStructure; import com.intellij.Patches; +import com.intellij.ide.ui.UISettings; import com.intellij.ide.util.treeView.*; import com.intellij.openapi.ui.GraphicsConfig; import com.intellij.openapi.ui.Queryable; diff --git a/platform/platform-impl/src/com/intellij/codeInsight/hint/EditorFragmentComponent.java b/platform/platform-impl/src/com/intellij/codeInsight/hint/EditorFragmentComponent.java index aa1c18f4c71f..a823652909aa 100644 --- a/platform/platform-impl/src/com/intellij/codeInsight/hint/EditorFragmentComponent.java +++ b/platform/platform-impl/src/com/intellij/codeInsight/hint/EditorFragmentComponent.java @@ -25,6 +25,7 @@ import com.intellij.openapi.editor.colors.EditorColors; import com.intellij.openapi.editor.colors.EditorColorsScheme; import com.intellij.openapi.editor.ex.EditorEx; import com.intellij.openapi.editor.ex.FoldingModelEx; +import com.intellij.openapi.editor.ex.util.EditorUIUtil; import com.intellij.openapi.util.TextRange; import com.intellij.openapi.util.text.StringUtil; import com.intellij.ui.HintHint; @@ -78,7 +79,7 @@ public class EditorFragmentComponent extends JPanel { final BufferedImage textImage = UIUtil.createImage(textImageWidth, textImageHeight, BufferedImage.TYPE_INT_RGB); Graphics textGraphics = textImage.getGraphics(); - UISettings.setupAntialiasing(textGraphics); + EditorUIUtil.setupAntialiasing(textGraphics); final JComponent rowHeader; final BufferedImage markersImage; @@ -90,7 +91,7 @@ public class EditorFragmentComponent extends JPanel { markersImage = UIUtil.createImage(markersImageWidth, textImageHeight, BufferedImage.TYPE_INT_RGB); Graphics markerGraphics = markersImage.getGraphics(); - UISettings.setupAntialiasing(markerGraphics); + EditorUIUtil.setupAntialiasing(markerGraphics); markerGraphics.translate(0, -y1); markerGraphics.setClip(0, y1, rowHeader.getWidth(), textImageHeight); diff --git a/platform/platform-impl/src/com/intellij/ide/actions/AboutPopup.java b/platform/platform-impl/src/com/intellij/ide/actions/AboutPopup.java index 5a0e1700ec6a..dc394c52c33f 100644 --- a/platform/platform-impl/src/com/intellij/ide/actions/AboutPopup.java +++ b/platform/platform-impl/src/com/intellij/ide/actions/AboutPopup.java @@ -17,6 +17,7 @@ package com.intellij.ide.actions; import com.intellij.ide.BrowserUtil; import com.intellij.ide.IdeBundle; +import com.intellij.ide.ui.UISettings; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.CustomShortcutSet; import com.intellij.openapi.application.ApplicationInfo; @@ -213,7 +214,7 @@ public class AboutPopup { super.paintChildren(g); Graphics2D g2 = (Graphics2D)g; - UIUtil.applyRenderingHints(g); + UISettings.setupAntialiasing(g); Font labelFont = JBUI.Fonts.label(); if (SystemInfo.isWindows) { diff --git a/platform/platform-impl/src/com/intellij/ide/ui/AppearanceConfigurable.java b/platform/platform-impl/src/com/intellij/ide/ui/AppearanceConfigurable.java index e59007f012f7..5a57d8b84396 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/AppearanceConfigurable.java +++ b/platform/platform-impl/src/com/intellij/ide/ui/AppearanceConfigurable.java @@ -34,6 +34,8 @@ import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; import java.util.Dictionary; import java.util.Hashtable; @@ -70,6 +72,34 @@ public class AppearanceConfigurable extends BaseConfigurable implements Searchab myComponent.myLafComboBox.setModel(new DefaultComboBoxModel(LafManager.getInstance().getInstalledLookAndFeels())); myComponent.myLafComboBox.setRenderer(new LafComboBoxRenderer()); + myComponent.myAntialiasingCheckBox.setSelected(UISettings.getInstance().ANTIALIASING_IN_IDE); + myComponent.myLCDRenderingScopeCombo.setEnabled(UISettings.getInstance().ANTIALIASING_IN_IDE); + + myComponent.myAntialiasingCheckBox.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + myComponent.myLCDRenderingScopeCombo.setEnabled(myComponent.myAntialiasingCheckBox.isSelected()); + } + }); + + myComponent.myLCDRenderingScopeCombo.setModel(new DefaultComboBoxModel(LCDRenderingScope.values())); + myComponent.myLCDRenderingScopeCombo.setSelectedItem(UISettings.getInstance().LCD_RENDERING_SCOPE); + + myComponent.myLCDRenderingScopeCombo.addItemListener(new ItemListener() { + @Override + public void itemStateChanged(ItemEvent e) { + if (e.getStateChange() == ItemEvent.SELECTED) { + myComponent.myLCDRenderingScopeCombo.setPrototypeDisplayValue(LCDRenderingScope.getWithLongestName()); + Object item = e.getItem(); + // it must be + if (item instanceof LCDRenderingScope) { + UISettings.getInstance().LCD_RENDERING_SCOPE = (LCDRenderingScope)item; + } + myComponent.myLCDRenderingScopeCombo.revalidate(); + } + } + }); + Dictionary delayDictionary = new Hashtable(); delayDictionary.put(new Integer(0), new JLabel("0")); delayDictionary.put(new Integer(1200), new JLabel("1200")); @@ -135,6 +165,16 @@ public class AppearanceConfigurable extends BaseConfigurable implements Searchab shouldUpdateUI = true; } + if (myComponent.myAntialiasingCheckBox.isSelected() != settings.ANTIALIASING_IN_IDE) { + settings.ANTIALIASING_IN_IDE = myComponent.myAntialiasingCheckBox.isSelected(); + shouldUpdateUI = true; + } + + if (myComponent.myLCDRenderingScopeCombo.getSelectedItem().equals(settings.LCD_RENDERING_SCOPE)) { + settings.LCD_RENDERING_SCOPE = (LCDRenderingScope)myComponent.myLCDRenderingScopeCombo.getSelectedItem(); + shouldUpdateUI = true; + } + settings.ANIMATE_WINDOWS = myComponent.myAnimateWindowsCheckBox.isSelected(); boolean update = settings.SHOW_TOOL_WINDOW_NUMBERS != myComponent.myWindowShortcutsCheckBox.isSelected(); settings.SHOW_TOOL_WINDOW_NUMBERS = myComponent.myWindowShortcutsCheckBox.isSelected(); @@ -258,6 +298,8 @@ public class AppearanceConfigurable extends BaseConfigurable implements Searchab UISettings settings = UISettings.getInstance(); myComponent.myFontCombo.setSelectedItem(settings.FONT_FACE); + myComponent.myAntialiasingCheckBox.setSelected(settings.ANTIALIASING_IN_IDE); + myComponent.myLCDRenderingScopeCombo.setSelectedItem(settings.LCD_RENDERING_SCOPE); myComponent.myFontSizeCombo.setSelectedItem(Integer.toString(settings.FONT_SIZE)); myComponent.myPresentationModeFontSize.setSelectedItem(Integer.toString(settings.PRESENTATION_MODE_FONT_SIZE)); myComponent.myAnimateWindowsCheckBox.setSelected(settings.ANIMATE_WINDOWS); @@ -308,6 +350,8 @@ public class AppearanceConfigurable extends BaseConfigurable implements Searchab boolean isModified = false; isModified |= !Comparing.equal(myComponent.myFontCombo.getSelectedItem(), settings.FONT_FACE); isModified |= !Comparing.equal(myComponent.myFontSizeCombo.getEditor().getItem(), Integer.toString(settings.FONT_SIZE)); + isModified |= myComponent.myAntialiasingCheckBox.isSelected() != settings.ANTIALIASING_IN_IDE; + isModified |= myComponent.myLCDRenderingScopeCombo.getSelectedItem().equals(settings.LCD_RENDERING_SCOPE); isModified |= myComponent.myAnimateWindowsCheckBox.isSelected() != settings.ANIMATE_WINDOWS; isModified |= myComponent.myWindowShortcutsCheckBox.isSelected() != settings.SHOW_TOOL_WINDOW_NUMBERS; isModified |= myComponent.myShowToolStripesCheckBox.isSelected() == settings.HIDE_TOOL_STRIPES; @@ -374,6 +418,8 @@ public class AppearanceConfigurable extends BaseConfigurable implements Searchab private JCheckBox myShowMemoryIndicatorCheckBox; private JComboBox myLafComboBox; private JCheckBox myCycleScrollingCheckBox; + private JBCheckBox myAntialiasingCheckBox; + private ComboBox myLCDRenderingScopeCombo; private JCheckBox myMoveMouseOnDefaultButtonCheckBox; private JCheckBox myEnableAlphaModeCheckBox; diff --git a/platform/platform-impl/src/com/intellij/ide/ui/AppearancePanel.form b/platform/platform-impl/src/com/intellij/ide/ui/AppearancePanel.form index 1c5af3553b70..548ce66676e7 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/AppearancePanel.form +++ b/platform/platform-impl/src/com/intellij/ide/ui/AppearancePanel.form @@ -16,7 +16,7 @@ - + @@ -29,7 +29,7 @@ - + @@ -38,7 +38,7 @@ - + @@ -77,7 +77,7 @@ - + @@ -129,7 +129,7 @@ - + @@ -147,7 +147,7 @@ - + @@ -156,7 +156,7 @@ - + @@ -168,7 +168,7 @@ - + @@ -194,12 +194,38 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/platform/platform-impl/src/com/intellij/notification/impl/IdeNotificationArea.java b/platform/platform-impl/src/com/intellij/notification/impl/IdeNotificationArea.java index 9ff729d27322..7c4b5efa078d 100644 --- a/platform/platform-impl/src/com/intellij/notification/impl/IdeNotificationArea.java +++ b/platform/platform-impl/src/com/intellij/notification/impl/IdeNotificationArea.java @@ -204,7 +204,7 @@ public class IdeNotificationArea extends JLabel implements CustomStatusBarWidget @Override public void paintIcon(Component c, Graphics g, int x, int y) { - UIUtil.applyRenderingHints(g); + UISettings.setupAntialiasing(g); Font originalFont = g.getFont(); Color originalColor = g.getColor(); diff --git a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionButtonWithText.java b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionButtonWithText.java index fdbdc376629b..890149ca4124 100644 --- a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionButtonWithText.java +++ b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionButtonWithText.java @@ -15,6 +15,7 @@ */ package com.intellij.openapi.actionSystem.impl; +import com.intellij.ide.ui.UISettings; import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.actionSystem.ex.ActionButtonLook; import com.intellij.util.ui.EmptyIcon; @@ -86,7 +87,7 @@ public class ActionButtonWithText extends ActionButton { look.paintIconAt(g, this, icon, iconRect.x, iconRect.y); look.paintBorder(g, this); - UIUtil.applyRenderingHints(g); + UISettings.setupAntialiasing(g); g.setColor(isButtonEnabled() ? getForeground() : getInactiveTextColor()); SwingUtilities2.drawStringUnderlineCharAt(this, g, text, getMnemonicCharIndex(text), diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/ex/util/EditorUIUtil.java b/platform/platform-impl/src/com/intellij/openapi/editor/ex/util/EditorUIUtil.java new file mode 100644 index 000000000000..f14f86aac1dd --- /dev/null +++ b/platform/platform-impl/src/com/intellij/openapi/editor/ex/util/EditorUIUtil.java @@ -0,0 +1,39 @@ +/* + * Copyright 2000-2015 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intellij.openapi.editor.ex.util; + +import com.intellij.ide.ui.LCDRenderingScope; +import com.intellij.ide.ui.UISettings; + +import java.awt.*; + +/** + * @author Denis Fokin + */ +public class EditorUIUtil { + + /* This method has to be used for setting up antialiasing and rendering hints in + * editors only. + */ + public static void setupAntialiasing(final Graphics g) { + + Graphics2D g2d = (Graphics2D)g; + + g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, LCDRenderingScope.getKeyForCurrentScope(true)); + + UISettings.setupFractionalMetrics(g2d); + } +} diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/ComplementaryFontsRegistry.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/ComplementaryFontsRegistry.java index 148405d35bdf..4591b9346f46 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/ComplementaryFontsRegistry.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/ComplementaryFontsRegistry.java @@ -15,6 +15,7 @@ */ package com.intellij.openapi.editor.impl; +import com.intellij.ide.ui.LCDRenderingScope; import com.intellij.ide.ui.UISettings; import com.intellij.ide.ui.UISettingsListener; import com.intellij.openapi.application.ApplicationManager; @@ -26,6 +27,7 @@ import org.intellij.lang.annotations.JdkConstants; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import sun.java2d.pipe.LCDTextRenderer; import java.awt.*; import java.util.*; diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorComponentImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorComponentImpl.java index 21a1d3d51e96..a361ce3a036e 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorComponentImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorComponentImpl.java @@ -31,6 +31,7 @@ import com.intellij.openapi.editor.colors.EditorColorsManager; import com.intellij.openapi.editor.event.CaretEvent; import com.intellij.openapi.editor.event.CaretListener; import com.intellij.openapi.editor.event.DocumentListener; +import com.intellij.openapi.editor.ex.util.EditorUIUtil; import com.intellij.openapi.editor.ex.util.EditorUtil; import com.intellij.openapi.ui.Queryable; import com.intellij.openapi.ui.TypingTarget; @@ -174,7 +175,7 @@ public class EditorComponentImpl extends JComponent implements Scrollable, DataP Graphics2D gg = !Boolean.TRUE.equals(EditorTextField.SUPPLEMENTARY_KEY.get(myEditor)) ? IdeBackgroundUtil.withEditorBackground(g, this) : (Graphics2D)g; UIUtil.setupComposite(gg); - UISettings.setupAntialiasing(gg); + EditorUIUtil.setupAntialiasing(gg); myEditor.paint(gg); } finally { diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorGutterComponentImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorGutterComponentImpl.java index b20408e450d5..9cfd220e3112 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorGutterComponentImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorGutterComponentImpl.java @@ -41,6 +41,7 @@ import com.intellij.openapi.editor.colors.EditorColors; import com.intellij.openapi.editor.colors.EditorFontType; import com.intellij.openapi.editor.event.EditorMouseEventArea; import com.intellij.openapi.editor.ex.*; +import com.intellij.openapi.editor.ex.util.EditorUIUtil; import com.intellij.openapi.editor.ex.util.EditorUtil; import com.intellij.openapi.editor.markup.*; import com.intellij.openapi.project.DumbAwareAction; @@ -204,7 +205,7 @@ class EditorGutterComponentImpl extends EditorGutterComponentEx implements Mouse g.setTransform(transform); } - UISettings.setupAntialiasing(g); + EditorUIUtil.setupAntialiasing(g); Color backgroundColor = getBackground(); paintLineNumbersBackground(g, clip, backgroundColor); paintAnnotationsBackground(g, clip, backgroundColor); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorHeaderComponent.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorHeaderComponent.java index b50b7af5489b..edba5cc06d2b 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorHeaderComponent.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorHeaderComponent.java @@ -38,8 +38,7 @@ public class EditorHeaderComponent extends JPanel { @Override public void paint(@NotNull Graphics g) { Graphics2D g2 = (Graphics2D)g; - g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); - g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); + UISettings.setupAntialiasing(g); super.paint(g); } } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorMarkupModelImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorMarkupModelImpl.java index eb7fa63d2992..ddf3657e9799 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorMarkupModelImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorMarkupModelImpl.java @@ -38,6 +38,7 @@ import com.intellij.openapi.editor.*; import com.intellij.openapi.editor.actionSystem.DocCommandGroupId; import com.intellij.openapi.editor.colors.EditorFontType; import com.intellij.openapi.editor.ex.*; +import com.intellij.openapi.editor.ex.util.EditorUIUtil; import com.intellij.openapi.editor.markup.ErrorStripeRenderer; import com.intellij.openapi.editor.markup.RangeHighlighter; import com.intellij.openapi.fileEditor.impl.EditorWindowHolder; @@ -1286,7 +1287,7 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark } Graphics2D cg = myCacheLevel2.createGraphics(); final AffineTransform t = cg.getTransform(); - UISettings.setupAntialiasing(cg); + EditorUIUtil.setupAntialiasing(cg); int lineShift = -myEditor.getLineHeight() * myCacheStartLine; AffineTransform translateInstance = AffineTransform.getTranslateInstance(-3, lineShift); @@ -1310,7 +1311,7 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark myRelativeY = SwingUtilities.convertPoint(this, 0, 0, myEditor.getScrollPane()).y; Graphics2D g2d = myCacheLevel1.createGraphics(); final AffineTransform transform = g2d.getTransform(); - UISettings.setupAntialiasing(g2d); + EditorUIUtil.setupAntialiasing(g2d); GraphicsUtil.setupAAPainting(g2d); g2d.setColor(myEditor.getBackgroundColor()); g2d.fillRect(0, 0, getWidth(), getHeight()); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/FontInfo.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/FontInfo.java index b91e61cdc0f0..884b8140d129 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/FontInfo.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/FontInfo.java @@ -16,6 +16,7 @@ package com.intellij.openapi.editor.impl; import com.intellij.ide.ui.UISettings; +import com.intellij.openapi.editor.ex.util.EditorUIUtil; import com.intellij.openapi.util.SystemInfo; import com.intellij.openapi.util.registry.Registry; import com.intellij.util.ui.UIUtil; @@ -147,7 +148,7 @@ public class FontInfo { // We need to use antialising-aware font metrics because we've alrady encountered a situation when non-antialiased symbol // width is not equal to the antialiased one (IDEA-81539). final Graphics graphics = UIUtil.createImage(1, 1, BufferedImage.TYPE_INT_RGB).getGraphics(); - UISettings.setupAntialiasing(graphics); + EditorUIUtil.setupAntialiasing(graphics); graphics.setFont(myFont); myFontMetrics = graphics.getFontMetrics(); for (int i = 0; i < 128; i++) { diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/view/EditorView.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/view/EditorView.java index 2ddae167d1ec..7c7d03450e69 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/view/EditorView.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/view/EditorView.java @@ -23,6 +23,7 @@ import com.intellij.openapi.editor.VisualPosition; import com.intellij.openapi.editor.colors.EditorColorsScheme; import com.intellij.openapi.editor.colors.EditorFontType; import com.intellij.openapi.editor.ex.DocumentEx; +import com.intellij.openapi.editor.ex.util.EditorUIUtil; import com.intellij.openapi.editor.ex.util.EditorUtil; import com.intellij.openapi.editor.impl.EditorImpl; import com.intellij.openapi.editor.markup.TextAttributes; @@ -288,7 +289,7 @@ public class EditorView implements Disposable { private static FontRenderContext createFontRenderContext() { Graphics2D g = (Graphics2D)UIUtil.createImage(1, 1, BufferedImage.TYPE_INT_RGB).getGraphics(); try { - UISettings.setupAntialiasing(g); + EditorUIUtil.setupAntialiasing(g); return g.getFontRenderContext(); } finally { diff --git a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorEmptyTextPainter.java b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorEmptyTextPainter.java index 1d03d31626a1..3a8e75efb69f 100644 --- a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorEmptyTextPainter.java +++ b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorEmptyTextPainter.java @@ -17,6 +17,7 @@ package com.intellij.openapi.fileEditor.impl; import com.intellij.ide.actions.ActivateToolWindowAction; import com.intellij.ide.actions.ShowFilePathAction; +import com.intellij.ide.ui.UISettings; import com.intellij.openapi.actionSystem.IdeActions; import com.intellij.openapi.actionSystem.Shortcut; import com.intellij.openapi.keymap.KeymapManager; @@ -47,8 +48,7 @@ public class EditorEmptyTextPainter { public void paintEmptyText(final EditorsSplitters splitters, Graphics g) { boolean isDarkBackground = UIUtil.isUnderDarcula(); - UIUtil.applyRenderingHints(g); - GraphicsUtil.setupAntialiasing(g, true, false); + UISettings.setupAntialiasing(g); g.setColor(new JBColor(isDarkBackground ? Gray._230 : Gray._80, Gray._160)); g.setFont(JBUI.Fonts.label(isDarkBackground ? 24f : 20f)); diff --git a/platform/platform-impl/src/com/intellij/openapi/preview/impl/PreviewManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/preview/impl/PreviewManagerImpl.java index bf0daadf8eaa..efd2e8c7f02c 100644 --- a/platform/platform-impl/src/com/intellij/openapi/preview/impl/PreviewManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/preview/impl/PreviewManagerImpl.java @@ -401,8 +401,7 @@ public class PreviewManagerImpl implements PreviewManager, PersistentStateCompon @Override public void paint(Graphics g) { boolean isDarkBackground = UIUtil.isUnderDarcula(); - UIUtil.applyRenderingHints(g); - GraphicsUtil.setupAntialiasing(g, true, false); + UISettings.setupAntialiasing(g); g.setColor(new JBColor(isDarkBackground ? Gray._230 : Gray._80, Gray._160)); g.setFont(JBUI.Fonts.label(isDarkBackground ? 24f : 20f)); diff --git a/platform/platform-impl/src/com/intellij/openapi/ui/FrameWrapper.java b/platform/platform-impl/src/com/intellij/openapi/ui/FrameWrapper.java index 934cd94171b8..e09ae56cd142 100644 --- a/platform/platform-impl/src/com/intellij/openapi/ui/FrameWrapper.java +++ b/platform/platform-impl/src/com/intellij/openapi/ui/FrameWrapper.java @@ -16,6 +16,7 @@ package com.intellij.openapi.ui; import com.intellij.ide.DataManager; +import com.intellij.ide.ui.UISettings; import com.intellij.openapi.Disposable; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.CommonDataKeys; @@ -471,7 +472,7 @@ public class FrameWrapper implements Disposable, DataProvider { @Override public void paint(Graphics g) { - UIUtil.applyRenderingHints(g); + UISettings.setupAntialiasing(g); super.paint(g); } } @@ -576,7 +577,7 @@ public class FrameWrapper implements Disposable, DataProvider { @Override public void paint(Graphics g) { - UIUtil.applyRenderingHints(g); + UISettings.setupAntialiasing(g); super.paint(g); } } diff --git a/platform/platform-impl/src/com/intellij/openapi/ui/impl/DialogWrapperPeerImpl.java b/platform/platform-impl/src/com/intellij/openapi/ui/impl/DialogWrapperPeerImpl.java index 302d2fafd61a..f6fdff5779b0 100644 --- a/platform/platform-impl/src/com/intellij/openapi/ui/impl/DialogWrapperPeerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/ui/impl/DialogWrapperPeerImpl.java @@ -18,6 +18,7 @@ package com.intellij.openapi.ui.impl; import com.intellij.ide.DataManager; import com.intellij.ide.IdeEventQueue; import com.intellij.ide.impl.TypeSafeDataProviderAdapter; +import com.intellij.ide.ui.UISettings; import com.intellij.openapi.Disposable; import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.application.Application; @@ -904,7 +905,7 @@ public class DialogWrapperPeerImpl extends DialogWrapperPeer implements FocusTra if (!SystemInfo.isMac || UIUtil.isUnderAquaLookAndFeel()) { // avoid rendering problems with non-aqua (alloy) LaFs under mac // actually, it's a bad idea to globally enable this for dialog graphics since renderers, for example, may not // inherit graphics so rendering hints won't be applied and trees or lists may render ugly. - UIUtil.applyRenderingHints(g); + UISettings.setupAntialiasing(g); } super.paint(g); diff --git a/platform/platform-impl/src/com/intellij/openapi/ui/impl/GlassPaneDialogWrapperPeer.java b/platform/platform-impl/src/com/intellij/openapi/ui/impl/GlassPaneDialogWrapperPeer.java index 28af087d7816..156a44ef0dea 100644 --- a/platform/platform-impl/src/com/intellij/openapi/ui/impl/GlassPaneDialogWrapperPeer.java +++ b/platform/platform-impl/src/com/intellij/openapi/ui/impl/GlassPaneDialogWrapperPeer.java @@ -544,7 +544,7 @@ public class GlassPaneDialogWrapperPeer extends DialogWrapperPeer implements Foc @Override public void paint(final Graphics g) { - UIUtil.applyRenderingHints(g); + UISettings.setupAntialiasing(g); super.paint(g); } diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFrameImpl.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFrameImpl.java index 44c671ba5b71..2802a4a3efe1 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFrameImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFrameImpl.java @@ -512,7 +512,7 @@ public class IdeFrameImpl extends JFrame implements IdeFrameEx, DataProvider { @Override public void paint(@NotNull Graphics g) { - UIUtil.applyRenderingHints(g); + UISettings.setupAntialiasing(g); //noinspection Since15 super.paint(g); } diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/StripeButtonUI.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/StripeButtonUI.java index ca9f23536e59..5c56758aae26 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/StripeButtonUI.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/StripeButtonUI.java @@ -15,6 +15,7 @@ */ package com.intellij.openapi.wm.impl; +import com.intellij.ide.ui.UISettings; import com.intellij.openapi.wm.ToolWindowAnchor; import com.intellij.ui.Gray; import com.intellij.util.ui.JBUI; @@ -146,6 +147,7 @@ public final class StripeButtonUI extends MetalToggleButtonUI{ // paint text + UISettings.setupAntialiasing(g2); if(text!=null){ if(model.isEnabled()){ if(model.isArmed()&&model.isPressed()||model.isSelected()){ diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowHeader.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowHeader.java index 80f17eb99e56..1ae0cc49a57f 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowHeader.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowHeader.java @@ -404,7 +404,7 @@ public abstract class ToolWindowHeader extends JPanel implements Disposable, UIS protected void paintChildren(Graphics g) { Graphics2D graphics = (Graphics2D) g.create(); - UIUtil.applyRenderingHints(graphics); + UISettings.setupAntialiasing(g); super.paintChildren(graphics); Rectangle r = getBounds(); diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/InlineProgressIndicator.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/InlineProgressIndicator.java index 362d136413e5..1a5341f45066 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/InlineProgressIndicator.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/InlineProgressIndicator.java @@ -17,6 +17,7 @@ package com.intellij.openapi.wm.impl.status; import com.intellij.icons.AllIcons; import com.intellij.ide.IdeBundle; +import com.intellij.ide.ui.UISettings; import com.intellij.openapi.Disposable; import com.intellij.openapi.progress.TaskInfo; import com.intellij.openapi.progress.util.ProgressIndicatorBase; @@ -270,7 +271,7 @@ public class InlineProgressIndicator extends ProgressIndicatorBase implements Di } final GraphicsConfig c = GraphicsUtil.setupAAPainting(g); - GraphicsUtil.setupAntialiasing(g, true, true); + UISettings.setupAntialiasing(g); int arc = 8; Color bg = getBackground(); diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/MemoryUsagePanel.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/MemoryUsagePanel.java index a31087933ef7..c77fdf49701d 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/MemoryUsagePanel.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/MemoryUsagePanel.java @@ -16,6 +16,7 @@ package com.intellij.openapi.wm.impl.status; import com.intellij.concurrency.JobScheduler; +import com.intellij.ide.ui.UISettings; import com.intellij.openapi.wm.CustomStatusBarWidget; import com.intellij.openapi.wm.StatusBar; import com.intellij.openapi.wm.StatusBarWidget; @@ -171,7 +172,7 @@ public class MemoryUsagePanel extends JButton implements CustomStatusBarWidget { final FontMetrics fontMetrics = g.getFontMetrics(); final int infoWidth = fontMetrics.charsWidth(info.toCharArray(), 0, info.length()); final int infoHeight = fontMetrics.getAscent(); - UIUtil.applyRenderingHints(g2); + UISettings.setupAntialiasing(g); g2.setColor(UIUtil.getLabelForeground()); g2.drawString(info, xOffset + (totalBarLength - infoWidth) / 2, yOffset + infoHeight + (barHeight - infoHeight) / 2 - 1); diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/TextPanel.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/TextPanel.java index 33adc4d0df53..23f99f7473ec 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/TextPanel.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/TextPanel.java @@ -16,6 +16,7 @@ package com.intellij.openapi.wm.impl.status; import com.intellij.icons.AllIcons; +import com.intellij.ide.ui.UISettings; import com.intellij.openapi.util.SystemInfo; import com.intellij.openapi.util.text.StringUtil; import com.intellij.ui.Gray; @@ -84,7 +85,7 @@ public class TextPanel extends JComponent { final Graphics2D g2 = (Graphics2D)g; g2.setFont(getFont()); - UIUtil.applyRenderingHints(g2); + UISettings.setupAntialiasing(g); final FontMetrics fm = g2.getFontMetrics(); final int sWidth = fm.stringWidth(s); diff --git a/platform/platform-impl/src/com/intellij/ui/MultilineTreeCellRenderer.java b/platform/platform-impl/src/com/intellij/ui/MultilineTreeCellRenderer.java index 1c824224100e..74ab8c508cd0 100644 --- a/platform/platform-impl/src/com/intellij/ui/MultilineTreeCellRenderer.java +++ b/platform/platform-impl/src/com/intellij/ui/MultilineTreeCellRenderer.java @@ -15,6 +15,7 @@ */ package com.intellij.ui; +import com.intellij.ide.ui.UISettings; import com.intellij.openapi.util.text.StringUtil; import com.intellij.ui.components.JBScrollPane; import com.intellij.util.ArrayUtil; @@ -154,7 +155,7 @@ public abstract class MultilineTreeCellRenderer extends JComponent implements Tr currBaseLine += myTextInsets.top; g.setFont(getFont()); g.setColor(fgColor); - UIUtil.applyRenderingHints(g); + UISettings.setupAntialiasing(g); if (!StringUtil.isEmpty(myPrefix)) { g.drawString(myPrefix, myTextInsets.left - myPrefixWidth + 1, currBaseLine); diff --git a/platform/platform-impl/src/com/intellij/ui/Splash.java b/platform/platform-impl/src/com/intellij/ui/Splash.java index 2b5cb9e9323f..069afd58c802 100644 --- a/platform/platform-impl/src/com/intellij/ui/Splash.java +++ b/platform/platform-impl/src/com/intellij/ui/Splash.java @@ -16,6 +16,7 @@ package com.intellij.ui; import com.intellij.ide.StartupProgress; +import com.intellij.ide.ui.UISettings; import com.intellij.openapi.application.ex.ApplicationInfoEx; import com.intellij.openapi.application.impl.ApplicationInfoImpl; import com.intellij.openapi.util.IconLoader; @@ -165,7 +166,7 @@ public class Splash extends JDialog implements StartupProgress { if (ApplicationInfoImpl.getShadowInstance().showLicenseeInfo()) { final LicensingFacade provider = LicensingFacade.getInstance(); if (provider != null) { - UIUtil.applyRenderingHints(g); + UISettings.setupAntialiasing(g); g.setFont(new Font(UIUtil.ARIAL_FONT_NAME, Font.BOLD, JBUI.scale(SystemInfo.isUnix ? 10 : 11))); g.setColor(textColor); diff --git a/platform/platform-impl/src/com/intellij/ui/plaf/beg/BegMenuItemUI.java b/platform/platform-impl/src/com/intellij/ui/plaf/beg/BegMenuItemUI.java index ce6699eea078..e0f036a2feb1 100644 --- a/platform/platform-impl/src/com/intellij/ui/plaf/beg/BegMenuItemUI.java +++ b/platform/platform-impl/src/com/intellij/ui/plaf/beg/BegMenuItemUI.java @@ -16,6 +16,7 @@ */ package com.intellij.ui.plaf.beg; +import com.intellij.ide.ui.UISettings; import com.intellij.openapi.actionSystem.impl.ActionMenuItem; import com.intellij.openapi.keymap.KeymapUtil; import com.intellij.openapi.util.SystemInfo; @@ -83,7 +84,7 @@ public class BegMenuItemUI extends BasicMenuItemUI { } public void paint(Graphics g, JComponent comp) { - UIUtil.applyRenderingHints(g); + UISettings.setupAntialiasing(g); JMenuItem jmenuitem = (JMenuItem)comp; ButtonModel buttonmodel = jmenuitem.getModel(); int mnemonicIndex = jmenuitem.getDisplayedMnemonicIndex(); diff --git a/platform/platform-impl/src/com/intellij/ui/plaf/beg/IdeaMenuUI.java b/platform/platform-impl/src/com/intellij/ui/plaf/beg/IdeaMenuUI.java index 0a6b107483d6..0ec5bb4bcce8 100644 --- a/platform/platform-impl/src/com/intellij/ui/plaf/beg/IdeaMenuUI.java +++ b/platform/platform-impl/src/com/intellij/ui/plaf/beg/IdeaMenuUI.java @@ -15,6 +15,7 @@ */ package com.intellij.ui.plaf.beg; +import com.intellij.ide.ui.UISettings; import com.intellij.openapi.util.SystemInfo; import com.intellij.util.ui.JBUI; import com.intellij.util.ui.UIUtil; @@ -71,7 +72,7 @@ public class IdeaMenuUI extends BasicMenuUI{ } public void paint(Graphics g, JComponent comp) { - UIUtil.applyRenderingHints(g); + UISettings.setupAntialiasing(g); JMenu jMenu = (JMenu)comp; ButtonModel buttonmodel = jMenu.getModel(); int mnemonicIndex = jMenu.getDisplayedMnemonicIndex(); diff --git a/platform/util/src/com/intellij/util/ui/UIUtil.java b/platform/util/src/com/intellij/util/ui/UIUtil.java index a93269b1c0ee..e6b3712eb2bb 100644 --- a/platform/util/src/com/intellij/util/ui/UIUtil.java +++ b/platform/util/src/com/intellij/util/ui/UIUtil.java @@ -1761,16 +1761,6 @@ public class UIUtil { return image; } - public static void applyRenderingHints(final Graphics g) { - Graphics2D g2d = (Graphics2D)g; - Toolkit tk = Toolkit.getDefaultToolkit(); - //noinspection HardCodedStringLiteral - Map map = (Map)tk.getDesktopProperty("awt.font.desktophints"); - if (map != null) { - g2d.addRenderingHints(map); - } - } - public static BufferedImage createImage(int width, int height, int type) { if (isRetina()) { return RetinaImage.create(width, height, type); diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/util/TextIcon.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/util/TextIcon.java index 023b4bd426c2..3a4663730b16 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/util/TextIcon.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/util/TextIcon.java @@ -1,5 +1,6 @@ package org.jetbrains.plugins.gradle.util; +import com.intellij.ide.ui.UISettings; import com.intellij.util.ui.GraphicsUtil; import com.intellij.util.ui.UIUtil; import org.jetbrains.annotations.NotNull; @@ -31,7 +32,7 @@ public class TextIcon implements Icon { @Override public void paintIcon(Component c, Graphics g, int x, int y) { - GraphicsUtil.setupAntialiasing(g, true, false); + UISettings.setupAntialiasing(g); if (myTextHeight <= 0) { myTextHeight = g.getFont().createGlyphVector(((Graphics2D)g).getFontRenderContext(), myText).getPixelBounds(null, 0, 0).height; } diff --git a/python/educational/interactive-learning/src/com/jetbrains/edu/learning/StudyInstructionPainter.java b/python/educational/interactive-learning/src/com/jetbrains/edu/learning/StudyInstructionPainter.java index 38266615e0cb..5f72d5a04ebb 100644 --- a/python/educational/interactive-learning/src/com/jetbrains/edu/learning/StudyInstructionPainter.java +++ b/python/educational/interactive-learning/src/com/jetbrains/edu/learning/StudyInstructionPainter.java @@ -1,5 +1,6 @@ package com.jetbrains.edu.learning; +import com.intellij.ide.ui.UISettings; import com.intellij.openapi.actionSystem.ActionManager; import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.KeyboardShortcut; @@ -25,8 +26,8 @@ public class StudyInstructionPainter extends EditorEmptyTextPainter { @Override public void paintEmptyText(final EditorsSplitters splitters, Graphics g) { boolean isDarkBackground = UIUtil.isUnderDarcula(); - UIUtil.applyRenderingHints(g); - GraphicsUtil.setupAntialiasing(g, true, false); + UISettings.setupAntialiasing(g); + g.setColor(new JBColor(isDarkBackground ? Gray._230 : Gray._80, Gray._160)); g.setFont(UIUtil.getLabelFont().deriveFont(isDarkBackground ? 24f : 20f)); diff --git a/xml/openapi/src/com/intellij/xml/breadcrumbs/BreadcrumbsComponent.java b/xml/openapi/src/com/intellij/xml/breadcrumbs/BreadcrumbsComponent.java index 94a02fc00993..50a23e87fa1c 100644 --- a/xml/openapi/src/com/intellij/xml/breadcrumbs/BreadcrumbsComponent.java +++ b/xml/openapi/src/com/intellij/xml/breadcrumbs/BreadcrumbsComponent.java @@ -15,6 +15,7 @@ */ package com.intellij.xml.breadcrumbs; +import com.intellij.ide.ui.UISettings; import com.intellij.openapi.Disposable; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.util.SystemInfo; @@ -756,7 +757,7 @@ public class BreadcrumbsComponent extends JComponent string = sb.append("...").toString(); } - UIUtil.applyRenderingHints(g2); + UISettings.setupAntialiasing(g2); g2.drawString(string, offset + ROUND_VALUE, height - fm.getDescent() - 4); g2.setFont(oldFont);