diff options
author | Eric Moffatt | 2006-07-27 19:06:12 +0000 |
---|---|---|
committer | Eric Moffatt | 2006-07-27 19:06:12 +0000 |
commit | b65c769fa60df539fca080949ebe9ed271685069 (patch) | |
tree | df1d730192aee04163c0743e707537388324c964 /bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/PerspectiveBarManager.java | |
parent | e8add7778250fb96bf6bf973295e99569ca65ebb (diff) | |
download | eclipse.platform.ui-b65c769fa60df539fca080949ebe9ed271685069.tar.gz eclipse.platform.ui-b65c769fa60df539fca080949ebe9ed271685069.tar.xz eclipse.platform.ui-b65c769fa60df539fca080949ebe9ed271685069.zip |
Bug 68079 - [PerspectiveBar] Can't switch perspectives to item on the chevron. Updated code to match the SWT snippet.
Diffstat (limited to 'bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/PerspectiveBarManager.java')
-rw-r--r-- | bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/PerspectiveBarManager.java | 39 |
1 files changed, 12 insertions, 27 deletions
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/PerspectiveBarManager.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/PerspectiveBarManager.java index 28fde69deb1..ff9f5accdbc 100644 --- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/PerspectiveBarManager.java +++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/PerspectiveBarManager.java @@ -23,7 +23,6 @@ import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.CoolBar; import org.eclipse.swt.widgets.CoolItem; -import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.MenuItem; import org.eclipse.swt.widgets.ToolBar; @@ -62,19 +61,9 @@ public class PerspectiveBarManager extends ToolBarManager { // TODO begin refactor this out? it is not good that we know we are inside a // CoolBar private CoolBar coolBar; - - private Menu popup; - + private Menu chevronMenu = null; + public void handleChevron(SelectionEvent event) { - /* - * If the popup menu is already there, then pop it down. This doesn't - * work... still need to figure this out. - */ - if (popup != null) { - popup.dispose(); - popup = null; - return; - } CoolItem item = (CoolItem) event.widget; //ToolBar toolbar = (ToolBar)getControl(); Control control = getControl(); @@ -117,12 +106,18 @@ public class PerspectiveBarManager extends ToolBarManager { } i++; } + /* Create a pop-up menu with items for each of the hidden buttons. */ - popup = new Menu(coolBar); + // Out with the old... + if (chevronMenu != null && !chevronMenu.isDisposed()) + chevronMenu.dispose(); + + // ...In with the new + chevronMenu = new Menu(coolBar); for (int j = i; j < toolCount; j++) { ToolItem tool = tools[j]; - MenuItem menuItem = new MenuItem(popup, SWT.NONE); + MenuItem menuItem = new MenuItem(chevronMenu, SWT.NONE); if (tool.getSelection()) { menuItem.setEnabled(false); } @@ -159,18 +154,8 @@ public class PerspectiveBarManager extends ToolBarManager { * relative to CoolBar). */ pt = coolBar.toDisplay(new Point(event.x, event.y)); - popup.setLocation(pt.x, pt.y); - popup.setVisible(true); - Display display = coolBar.getDisplay(); - while (popup != null && !popup.isDisposed() && popup.isVisible()) { - if (!display.readAndDispatch()) { - display.sleep(); - } - } - if (popup != null) { - popup.dispose(); - popup = null; - } + chevronMenu.setLocation(pt.x, pt.y); + chevronMenu.setVisible(true); } /* (non-Javadoc) |