diff options
author | Silenio Quarti <silenio> | 2009-06-04 19:27:52 +0000 |
---|---|---|
committer | Silenio Quarti <silenio> | 2009-06-04 19:27:52 +0000 |
commit | 598acdebe57bb9f27699cd6166e8790ce950a48c (patch) | |
tree | 53c728c7d3199dfae329a6685de537308f7757f3 | |
parent | a0765fb0534580a63fa8b32d2180d775f7ca375e (diff) | |
download | eclipse.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-x | bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/widgets/Menu.java | 16 |
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) { |