From c3239504db6e0cec69273aa08f41fe5ee6a40f0a Mon Sep 17 00:00:00 2001 From: "Maxim.Mossienko" Date: Wed, 25 Dec 2013 22:44:19 +0100 Subject: [PATCH] IDEA-118696 Replace with regex: IOOBE at SegmentArray.findSegmentIndex() --- .../find/impl/livePreview/LivePreview.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/find/impl/livePreview/LivePreview.java b/platform/lang-impl/src/com/intellij/find/impl/livePreview/LivePreview.java index d1584979a01c..87877463b9a9 100644 --- a/platform/lang-impl/src/com/intellij/find/impl/livePreview/LivePreview.java +++ b/platform/lang-impl/src/com/intellij/find/impl/livePreview/LivePreview.java @@ -547,9 +547,17 @@ public class LivePreview extends DocumentAdapter implements SearchResults.Search int startOffset = cur.getStartOffset(); int endOffset = cur.getEndOffset(); - Point startPoint = myEditor.visualPositionToXY(myEditor.offsetToVisualPosition(startOffset)); - Point endPoint = myEditor.visualPositionToXY(myEditor.offsetToVisualPosition(endOffset)); - Point point = new Point((startPoint.x + endPoint.x)/2, startPoint.y); + if (startOffset >= myEditor.getDocument().getTextLength()) { + if (!object.isDisposed()) { + ApplicationManager.getApplication().invokeLater(new Runnable() { + @Override + public void run() { + object.hide(); + } + }); + } + return null; + } if (!SearchResults.insideVisibleArea(myEditor, cur)) { ApplicationManager.getApplication().invokeLater(new Runnable() { @Override @@ -575,6 +583,11 @@ public class LivePreview extends DocumentAdapter implements SearchResults.Search myVisibleAreaListenersToRemove.add(visibleAreaListener); } + + Point startPoint = myEditor.visualPositionToXY(myEditor.offsetToVisualPosition(startOffset)); + Point endPoint = myEditor.visualPositionToXY(myEditor.offsetToVisualPosition(endOffset)); + Point point = new Point((startPoint.x + endPoint.x)/2, startPoint.y); + return new RelativePoint(myEditor.getContentComponent(), point); } }