From d748ccb9b6a7c5b52b5005533d87f6fd72b077a8 Mon Sep 17 00:00:00 2001 From: Dmitry Batrak Date: Fri, 12 Aug 2016 14:47:39 +0300 Subject: [PATCH] IDEA-93637 Hide cursor while typing --- .../openapi/editor/impl/EditorImpl.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java index c15ca8faec06..6227ce2809a2 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java @@ -147,8 +147,21 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi private final TraceableDisposable myTraceableDisposable = new TraceableDisposable(true); private int myLinePaintersWidth; + private static final Cursor EMPTY_CURSOR; + static { ComplementaryFontsRegistry.getFontAbleToDisplay(' ', 0, Font.PLAIN, UIManager.getFont("Label.font").getFamily()); // load costly font info + + Cursor emptyCursor = null; + try { + emptyCursor = Toolkit.getDefaultToolkit().createCustomCursor(UIUtil.createImage(1, 1, BufferedImage.TYPE_INT_ARGB), + new Point(), + "Empty cursor"); + } + catch (Exception e){ + LOG.warn("Couldn't create an empty cursor", e); + } + EMPTY_CURSOR = emptyCursor; } private final CommandProcessor myCommandProcessor; @@ -1981,6 +1994,10 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi (getCaretModel().getOffset() < e.getOffset() || getCaretModel().getOffset() > e.getOffset() + e.getNewLength())) { restoreCaretRelativePosition(); } + + if (EMPTY_CURSOR != null) { + myEditorComponent.setCursor(EMPTY_CURSOR); + } } private void saveCaretRelativePosition() {