From 7db31b63b32ad336c7982ccd8aebbb3f8e514d42 Mon Sep 17 00:00:00 2001 From: Dmitry Batrak Date: Tue, 20 Jun 2017 12:36:20 +0300 Subject: [PATCH] IDEA-161586 Intermittent Intellij hangs with 2016.2.4 on Linux safe fix, that should improve the situation - hangs shouldn't happen repeatedly now, only occasionally --- .../src/com/intellij/openapi/editor/impl/CaretImpl.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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 18edce3b85fb..ab5730050d1f 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 @@ -1485,9 +1485,11 @@ public class CaretImpl extends UserDataHolderBase implements Caret, Dumpable { InlayModelImpl inlayModel = myEditor.getInlayModel(); int startOffset = marker.getStartOffset(); int endOffset = marker.getEndOffset(); - if (!myEditor.offsetToVisualPosition(startOffset, true, false).equals(myRangeMarkerStartPosition) && + if ((myRangeMarkerStartPosition == null || + !myEditor.offsetToVisualPosition(startOffset, true, false).equals(myRangeMarkerStartPosition)) && model.getSoftWrap(startOffset) == null && !inlayModel.hasInlineElementAt(startOffset) || - !myEditor.offsetToVisualPosition(endOffset, false, true).equals(myRangeMarkerEndPosition) + (myRangeMarkerEndPosition == null || + !myEditor.offsetToVisualPosition(endOffset, false, true).equals(myRangeMarkerEndPosition)) && model.getSoftWrap(endOffset) == null && !inlayModel.hasInlineElementAt(endOffset)) { myRangeMarkerStartPosition = null; myRangeMarkerEndPosition = null;