diff options
author | Stephan Wahlbrink | 2012-01-23 16:14:39 +0000 |
---|---|---|
committer | Paul Webster | 2012-01-23 16:15:01 +0000 |
commit | 108533e60a824e0a68b426bb3367a8aa5de2a788 (patch) | |
tree | 21f7a621b96e0ab1c15c26aef9808f9e66c2d2fd | |
parent | d38125761e5d351338944702ab0297b8aadaf9e5 (diff) | |
download | eclipse.platform.ui-108533e60a824e0a68b426bb3367a8aa5de2a788.tar.gz eclipse.platform.ui-108533e60a824e0a68b426bb3367a8aa5de2a788.tar.xz eclipse.platform.ui-108533e60a824e0a68b426bb3367a8aa5de2a788.zip |
Bug 336584 - [Contributions] CommandContributionItem#openDropDownMenu()
never release menu manager
Release it in an asyncExec
-rw-r--r-- | bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/menus/CommandContributionItem.java | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/menus/CommandContributionItem.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/menus/CommandContributionItem.java index 669554ab5fd..1ddf6f14e7c 100644 --- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/menus/CommandContributionItem.java +++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/menus/CommandContributionItem.java @@ -24,7 +24,7 @@ import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.jface.action.ContributionItem; import org.eclipse.jface.action.IContributionManager; -import org.eclipse.jface.action.IMenuListener; +import org.eclipse.jface.action.IMenuListener2; import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.bindings.BindingManagerEvent; @@ -867,7 +867,7 @@ public class CommandContributionItem extends ContributionItem { if (workbenchHelpSystem != null) { workbenchHelpSystem.setHelp(menu, helpContextId); } - menuManager.addMenuListener(new IMenuListener() { + menuManager.addMenuListener(new IMenuListener2() { public void menuAboutToShow(IMenuManager manager) { String id = getId(); if (dropDownMenuOverride != null) { @@ -876,6 +876,14 @@ public class CommandContributionItem extends ContributionItem { menuService.populateContributionManager( menuManager, "menu:" + id); //$NON-NLS-1$ } + public void menuAboutToHide(IMenuManager manager) { + display.asyncExec(new Runnable() { + public void run() { + menuService.releaseContributions(menuManager); + menuManager.dispose(); + } + }); + } }); // position the menu below the drop down item |