Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ShowViewMenu.java')
-rw-r--r--bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ShowViewMenu.java19
1 files changed, 12 insertions, 7 deletions
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ShowViewMenu.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ShowViewMenu.java
index 83145aa2199..6ff47364da7 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ShowViewMenu.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ShowViewMenu.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2011 IBM Corporation and others.
+ * Copyright (c) 2000, 2012 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -11,6 +11,7 @@
package org.eclipse.ui.internal;
+import com.ibm.icu.text.Collator;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -19,7 +20,6 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-
import org.eclipse.core.commands.Command;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.IParameter;
@@ -53,8 +53,6 @@ import org.eclipse.ui.services.IServiceLocator;
import org.eclipse.ui.views.IViewDescriptor;
import org.eclipse.ui.views.IViewRegistry;
-import com.ibm.icu.text.Collator;
-
/**
* A <code>ShowViewMenu</code> is used to populate a menu manager with Show
* View actions. The visible views are determined by user preference from the
@@ -93,6 +91,8 @@ public class ShowViewMenu extends ContributionItem {
// Maps pages to a list of opened views
private Map openedViews = new HashMap();
+ private MenuManager menuManager;
+
private IMenuListener menuListener = new IMenuListener() {
public void menuAboutToShow(IMenuManager manager) {
manager.markDirty();
@@ -316,9 +316,14 @@ public class ShowViewMenu extends ContributionItem {
((MenuManager) getParent()).addMenuListener(menuListener);
}
- MenuManager manager = new MenuManager();
- fillMenu(manager);
- IContributionItem items[] = manager.getItems();
+ if (menuManager != null) {
+ menuManager.dispose();
+ menuManager = null;
+ }
+
+ menuManager = new MenuManager();
+ fillMenu(menuManager);
+ IContributionItem items[] = menuManager.getItems();
if (items.length == 0) {
MenuItem item = new MenuItem(menu, SWT.NONE, index++);
item.setText(NO_TARGETS_MSG);

Back to the top