Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Moffatt2006-07-27 19:06:12 +0000
committerEric Moffatt2006-07-27 19:06:12 +0000
commitb65c769fa60df539fca080949ebe9ed271685069 (patch)
treedf1d730192aee04163c0743e707537388324c964 /bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/PerspectiveBarManager.java
parente8add7778250fb96bf6bf973295e99569ca65ebb (diff)
downloadeclipse.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.java39
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)

Back to the top