diff options
author | Tor Norbye <tnorbye@google.com> | 2014-07-25 13:10:36 -0700 |
---|---|---|
committer | Tor Norbye <tnorbye@google.com> | 2014-07-25 13:10:36 -0700 |
commit | e5266e2343c8d275d79fa0be725180d0fe3a993c (patch) | |
tree | 0ba72f5de1949e0527874a799baa224cbe1537e0 /platform/platform-impl/src/com/intellij/openapi/editor/impl/CaretModelImpl.java | |
parent | b03a5855292feb8c331815f883fe64372aacd872 (diff) | |
parent | 2e5965e996aad62ab1338b09d54caaf99ff3dd6a (diff) | |
download | idea-e5266e2343c8d275d79fa0be725180d0fe3a993c.tar.gz |
Merge remote-tracking branch 'aosp/upstream-master' into merge
Conflicts:
.idea/modules.xml
Change-Id: I5e3d04bc83cdc26b2b56fca66b44b1dd8941b143
Diffstat (limited to 'platform/platform-impl/src/com/intellij/openapi/editor/impl/CaretModelImpl.java')
-rw-r--r-- | platform/platform-impl/src/com/intellij/openapi/editor/impl/CaretModelImpl.java | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/CaretModelImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/CaretModelImpl.java index a18d45472454..8d6608e63dd9 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/CaretModelImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/CaretModelImpl.java @@ -282,11 +282,9 @@ public class CaretModelImpl implements CaretModel, PrioritizedDocumentListener, } } - boolean addCaret(CaretImpl caretToAdd) { + boolean addCaret(@NotNull CaretImpl caretToAdd) { for (CaretImpl caret : myCarets) { - VisualPosition newVisualPosition = caretToAdd.getVisualPosition(); - int newOffset = myEditor.logicalPositionToOffset(myEditor.visualToLogicalPosition(newVisualPosition)); - if (caret.getVisualPosition().equals(newVisualPosition) || newOffset >= caret.getSelectionStart() && newOffset <= caret.getSelectionEnd()) { + if (caretsOverlap(caret, caretToAdd)) { return false; } } @@ -384,8 +382,7 @@ public class CaretModelImpl implements CaretModel, PrioritizedDocumentListener, it.next(); } CaretImpl currCaret = it.next(); - if (prevCaret != null && (currCaret.getVisualPosition().equals(prevCaret.getVisualPosition()) - || selectionsIntersect(currCaret, prevCaret))) { + if (prevCaret != null && caretsOverlap(currCaret, prevCaret)) { int newSelectionStart = Math.min(currCaret.getSelectionStart(), prevCaret.getSelectionStart()); int newSelectionEnd = Math.max(currCaret.getSelectionEnd(), prevCaret.getSelectionEnd()); CaretImpl toRetain, toRemove; @@ -410,7 +407,10 @@ public class CaretModelImpl implements CaretModel, PrioritizedDocumentListener, } } - private static boolean selectionsIntersect(CaretImpl firstCaret, CaretImpl secondCaret) { + private static boolean caretsOverlap(@NotNull CaretImpl firstCaret, @NotNull CaretImpl secondCaret) { + if (firstCaret.getVisualPosition().equals(secondCaret.getVisualPosition())) { + return true; + } int firstStart = firstCaret.getSelectionStart(); int secondStart = secondCaret.getSelectionStart(); int firstEnd = firstCaret.getSelectionEnd(); |