From 47187ba5b44edcce35d09ee627e91d2ef9bbee48 Mon Sep 17 00:00:00 2001 From: Anton Makeev Date: Tue, 8 Jan 2013 09:18:00 +0100 Subject: [PATCH] Retina fix removed from editor component --- .../openapi/editor/impl/EditorComponentImpl.java | 12 +++--------- .../util/src/com/intellij/util/ui/UIUtil.java | 15 +++++++++------ 2 files changed, 12 insertions(+), 15 deletions(-) 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 6967e0eba433..7e0d8db57e78 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 @@ -148,15 +148,9 @@ public class EditorComponentImpl extends JComponent implements Scrollable, DataP myApplication.editorPaintStart(); try { - UIUtil.paintWithRetina(getSize(), g, myEditor.paintBlockCaret(), new Consumer() { - @Override - public void consume(Graphics2D graphics) { - UIUtil.setupComposite(graphics); - - UISettings.setupAntialiasing(graphics); - myEditor.paint(graphics); - } - }); + UIUtil.setupComposite((Graphics2D)g); + UISettings.setupAntialiasing(g); + myEditor.paint((Graphics2D)g); } finally { myApplication.editorPaintFinish(); diff --git a/platform/util/src/com/intellij/util/ui/UIUtil.java b/platform/util/src/com/intellij/util/ui/UIUtil.java index c6b95ff0b15c..f517e66a02f7 100644 --- a/platform/util/src/com/intellij/util/ui/UIUtil.java +++ b/platform/util/src/com/intellij/util/ui/UIUtil.java @@ -1482,14 +1482,17 @@ public class UIUtil { return new BufferedImage(width, height, type); } - public static void paintWithRetina(@NotNull Dimension size, @NotNull Graphics g, Consumer paintRoutine) { - paintWithRetina(size, g, true, paintRoutine); + public static void paintWithXorOnRetina(@NotNull Dimension size, @NotNull Graphics g, Consumer paintRoutine) { + paintWithXorOnRetina(size, g, true, paintRoutine); } - public static void paintWithRetina(@NotNull Dimension size, - @NotNull Graphics g, - boolean useRetinaCondition, - Consumer paintRoutine) { + /** + * Direct painting into component's graphics with XORMode is broken on retina-mode so we need to paint into an intermediate buffer first. + */ + public static void paintWithXorOnRetina(@NotNull Dimension size, + @NotNull Graphics g, + boolean useRetinaCondition, + Consumer paintRoutine) { if (!useRetinaCondition || !isRetina() || Registry.is("ide.mac.retina.disableDrawingFix", false)) { paintRoutine.consume((Graphics2D)g); }