diff options
author | Thomas Maeder | 2003-12-12 14:04:11 +0000 |
---|---|---|
committer | Thomas Maeder | 2003-12-12 14:04:11 +0000 |
commit | e32cea4bf1acc8ecea20b24f211520b767185465 (patch) | |
tree | a37e79b66f763341e4e26d7df19cad7ab0ebac79 | |
parent | 487634f40089ee369c6a0aa2d5831f7e74f7cd2d (diff) | |
download | eclipse.platform.text-e32cea4bf1acc8ecea20b24f211520b767185465.tar.gz eclipse.platform.text-e32cea4bf1acc8ecea20b24f211520b767185465.tar.xz eclipse.platform.text-e32cea4bf1acc8ecea20b24f211520b767185465.zip |
fix for bug 47813
3 files changed, 29 insertions, 10 deletions
diff --git a/org.eclipse.search/search/org/eclipse/search/internal/ui/SearchDropDownAction.java b/org.eclipse.search/search/org/eclipse/search/internal/ui/SearchDropDownAction.java index 83021421e12..bb6db831989 100644 --- a/org.eclipse.search/search/org/eclipse/search/internal/ui/SearchDropDownAction.java +++ b/org.eclipse.search/search/org/eclipse/search/internal/ui/SearchDropDownAction.java @@ -28,7 +28,7 @@ class SearchDropDownAction extends Action implements IMenuCreator { private Menu fMenu; - public SearchDropDownAction(SearchResultViewer viewer) { + public SearchDropDownAction() { setText(SearchMessages.getString("SearchResultView.previousSearches.text")); //$NON-NLS-1$ setToolTipText(SearchMessages.getString("SearchResultView.previousSearches.tooltip")); //$NON-NLS-1$ SearchPluginImages.setImageDescriptors(this, SearchPluginImages.T_LCL, SearchPluginImages.IMG_LCL_SEARCH_HISTORY); @@ -36,8 +36,10 @@ class SearchDropDownAction extends Action implements IMenuCreator { } public void dispose() { - if (fMenu != null) + if (fMenu != null) { fMenu.dispose(); + fMenu= null; + } } public Menu getMenu(Menu parent) { @@ -79,4 +81,12 @@ class SearchDropDownAction extends Action implements IMenuCreator { public void run() { new ShowSearchesAction().run(true); } + + /** + * Get's rid of the menu, because the menu hangs on to + * the searches, etc. + */ + void clear() { + dispose(); + } } diff --git a/org.eclipse.search/search/org/eclipse/search/internal/ui/SearchManager.java b/org.eclipse.search/search/org/eclipse/search/internal/ui/SearchManager.java index cb7ce5df244..6e310231650 100644 --- a/org.eclipse.search/search/org/eclipse/search/internal/ui/SearchManager.java +++ b/org.eclipse.search/search/org/eclipse/search/internal/ui/SearchManager.java @@ -119,12 +119,14 @@ public class SearchManager implements IResourceChangeListener { Iterator iter= fListeners.iterator(); while (iter.hasNext()) { SearchResultViewer viewer= (SearchResultViewer)iter.next(); - viewer.setContextMenuTarget(null); - viewer.setActionGroupFactory(null); - viewer.setInput(null); + handleAllSearchesRemoved(viewer); } } + private void handleAllSearchesRemoved(SearchResultViewer viewer) { + viewer.handleAllSearchesRemoved(); + } + void setCurrentSearch(final Search search) { if (fCurrentSearch == search) return; diff --git a/org.eclipse.search/search/org/eclipse/search/internal/ui/SearchResultViewer.java b/org.eclipse.search/search/org/eclipse/search/internal/ui/SearchResultViewer.java index 5069cd6c898..d9e07dfff65 100644 --- a/org.eclipse.search/search/org/eclipse/search/internal/ui/SearchResultViewer.java +++ b/org.eclipse.search/search/org/eclipse/search/internal/ui/SearchResultViewer.java @@ -133,7 +133,7 @@ public class SearchResultViewer extends TableViewer { fSearchAgainAction.setEnabled(hasSearchOperation); fSortDropDownAction = new SortDropDownAction(this); fSortDropDownAction.setEnabled(getItemCount() > 0); - fSearchDropDownAction= new SearchDropDownAction(this); + fSearchDropDownAction= new SearchDropDownAction(); fSearchDropDownAction.setEnabled(hasSearch); fCopyToClipboardAction= new CopyToClipboardAction(this); @@ -270,7 +270,7 @@ public class SearchResultViewer extends TableViewer { updateTitle(); enableActions(); if (getItemCount() > 0) - selectResult(getTable(), 0); + selectResult(0); WorkbenchHelp.setHelp(getControl(), SearchPlugin.getDefault().getSearchViewHelpContextId()); } @@ -483,7 +483,7 @@ public class SearchResultViewer extends TableViewer { } fMarkerToShow= 0; entry= (SearchResultViewEntry)getTable().getItem(index).getData(); - selectResult(table, index); + selectResult(index); } entry.setSelectedMarkerIndex(fMarkerToShow); openCurrentSelection(); @@ -520,7 +520,7 @@ public class SearchResultViewer extends TableViewer { } entry= (SearchResultViewEntry)getTable().getItem(index).getData(); fMarkerToShow= entry.getMatchCount() - 1; - selectResult(table, index); + selectResult(index); } entry.setSelectedMarkerIndex(fMarkerToShow); openCurrentSelection(); @@ -533,7 +533,7 @@ public class SearchResultViewer extends TableViewer { return true; } - private void selectResult(Table table, int index) { + private void selectResult(int index) { fHandleSelectionChangedEvents= false; Object element= getElementAt(index); if (element != null) @@ -718,4 +718,11 @@ public class SearchResultViewer extends TableViewer { getTable().setRedraw(true); } + void handleAllSearchesRemoved() { + setContextMenuTarget(null); + setActionGroupFactory(null); + setInput(null); + fSearchDropDownAction.clear(); + } + } |