private void navigateAndHint( @NotNull Usage usage, @Nullable final String hint, @NotNull final FindUsagesHandler handler, @NotNull final RelativePoint popupPosition, final int maxUsages, @NotNull final FindUsagesOptions options) { usage.navigate(true); if (hint == null) return; final Editor newEditor = getEditorFor(usage); if (newEditor == null) return; final Project project = handler.getProject(); // opening editor is performing in invokeLater IdeFocusManager.getInstance(project) .doWhenFocusSettlesDown( new Runnable() { @Override public void run() { newEditor .getScrollingModel() .runActionOnScrollingFinished( new Runnable() { @Override public void run() { // after new editor created, some editor resizing events are still // bubbling. To prevent hiding hint, invokeLater this IdeFocusManager.getInstance(project) .doWhenFocusSettlesDown( new Runnable() { @Override public void run() { if (newEditor.getComponent().isShowing()) { showHint( hint, newEditor, popupPosition, handler, maxUsages, options); } } }); } }); } }); }