summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSilenio Quarti <silenio>2009-06-04 19:27:52 +0000
committerSilenio Quarti <silenio>2009-06-04 19:27:52 +0000
commit598acdebe57bb9f27699cd6166e8790ce950a48c (patch)
tree53c728c7d3199dfae329a6685de537308f7757f3
parenta0765fb0534580a63fa8b32d2180d775f7ca375e (diff)
downloadeclipse.platform.swt-598acdebe57bb9f27699cd6166e8790ce950a48c.tar.gz
eclipse.platform.swt-598acdebe57bb9f27699cd6166e8790ce950a48c.tar.xz
eclipse.platform.swt-598acdebe57bb9f27699cd6166e8790ce950a48c.zip
279042 - Cocoa: top-level menus not updated as you switch between editors
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/widgets/Menu.java16
1 files changed, 16 insertions, 0 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/widgets/Menu.java b/bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/widgets/Menu.java
index beb28fcd1d..62934535e4 100755
--- a/bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/widgets/Menu.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/widgets/Menu.java
@@ -324,6 +324,14 @@ void createItem (MenuItem item, int index) {
nsItem.setSubmenu (emptyMenu);
emptyMenu.release();
}
+ if (display.menuBar == this) {
+ NSApplication application = display.application;
+ NSMenu menubar = application.mainMenu();
+ if (menubar != null) {
+ nsItem.setMenu(null);
+ menubar.insertItem(nsItem, index + 1);
+ }
+ }
//TODO - find a way to disable the menu instead of each item
if (!getEnabled ()) nsItem.setEnabled (false);
}
@@ -350,6 +358,14 @@ void destroyItem (MenuItem item) {
items [itemCount] = null;
if (itemCount == 0) items = new MenuItem [4];
nsMenu.removeItem (item.nsItem);
+ if (display.menuBar == this) {
+ NSApplication application = display.application;
+ NSMenu menubar = application.mainMenu();
+ if (menubar != null) {
+ NSMenuItem nsItem = item.nsItem;
+ menubar.removeItem(nsItem);
+ }
+ }
}
void fixMenus (Decorations newParent) {