Released workaround for bug 188587: [FastView] Search view stepping in fast view mode broken
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/search/JavaSearchEditorOpener.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/search/JavaSearchEditorOpener.java
index 8771b60..1b740ea 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/search/JavaSearchEditorOpener.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/search/JavaSearchEditorOpener.java
@@ -22,6 +22,7 @@
import org.eclipse.ui.IReusableEditor;
import org.eclipse.ui.IViewReference;
import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPartReference;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.part.FileEditorInput;
@@ -117,8 +118,7 @@
if (canBeReused) {
boolean showsSameInputType= reusedEditorRef.getId().equals(editorId);
if (!showsSameInputType) {
- IViewReference searchViewRef= page.findViewReference(NewSearchUI.SEARCH_VIEW_ID);
- if (searchViewRef == null || !searchViewRef.isFastView())
+ if (isOkToClose(page)) // workaround for https://bugs.eclipse.org/bugs/show_bug.cgi?id=188587
page.closeEditors(new IEditorReference[] { reusedEditorRef }, false);
fReusedEditor= null;
} else {
@@ -158,4 +158,11 @@
return null;
}
+ private boolean isOkToClose(IWorkbenchPage page) {
+ IWorkbenchPartReference searchViewRef= page.getActivePartReference();
+ return searchViewRef == null ||
+ !NewSearchUI.SEARCH_VIEW_ID.equals(searchViewRef.getId()) ||
+ !((IViewReference) searchViewRef).isFastView();
+ }
+
}