From 7a5404ac9bea759bc9fb3eeb3a337384bf47f938 Mon Sep 17 00:00:00 2001 From: Dmitry Batrak Date: Mon, 5 Oct 2015 17:12:04 +0300 Subject: [PATCH] editor new rendering: don't use LogicalPosition.toVisualPosition() method, it doesn't produce required result in new code --- .../src/com/intellij/openapi/editor/impl/CaretImpl.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/CaretImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/CaretImpl.java index 5b3c19b1c081..ff2b6a12f776 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/CaretImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/CaretImpl.java @@ -480,6 +480,7 @@ public class CaretImpl extends UserDataHolderBase implements Caret { VerticalInfo oldInfo = myCaretInfo; LogicalPosition oldCaretPosition = myLogicalCaret; + VisualPosition oldVisualPosition = myVisibleCaret; LogicalPosition logicalPositionToUse; if (pos.visualPositionAware) { @@ -566,7 +567,8 @@ public class CaretImpl extends UserDataHolderBase implements Caret { } } - if (!oldCaretPosition.toVisualPosition().equals(myLogicalCaret.toVisualPosition())) { + if (myEditor.myUseNewRendering ? !oldVisualPosition.equals(myVisibleCaret) : + !oldCaretPosition.toVisualPosition().equals(myLogicalCaret.toVisualPosition())) { CaretEvent event = new CaretEvent(myEditor, this, oldCaretPosition, myLogicalCaret); if (fireListeners) { myEditor.getCaretModel().fireCaretPositionChanged(event);