From 14cb60e508e4a7c3eb5c6702212c8cce9297ff92 Mon Sep 17 00:00:00 2001 From: Dmitry Batrak Date: Wed, 25 Apr 2018 18:55:26 +0300 Subject: [PATCH] IDEA-190665 Caret is not repainted correctly do not update editor model ('caret shown' flag) from painting code --- .../src/com/intellij/openapi/editor/impl/EditorImpl.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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 b5637342902c..0b45e5907cba 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 @@ -2548,7 +2548,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi @Override public void run() { - if (myEditor != null) { + if (myEditor != null && !myEditor.myUpdateCursor) { CaretCursor activeCursor = myEditor.myCaretCursor; long time = System.currentTimeMillis(); @@ -2574,6 +2574,8 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi void updateCaretCursor() { myUpdateCursor = true; + myCaretCursor.myIsShown = true; + myCaretCursor.repaint(); } private void setCursorPosition() { @@ -2715,7 +2717,6 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi private void setPositions(CaretRectangle[] locations) { myStartTime = System.currentTimeMillis(); myLocations = locations; - myIsShown = true; } private void repaint() {