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 @@
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