diff options
Diffstat (limited to 'src/plugins/platforms/cocoa/qcocoamenu.mm')
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoamenu.mm | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoamenu.mm b/src/plugins/platforms/cocoa/qcocoamenu.mm index 84acf79517..736e02a3ca 100644 --- a/src/plugins/platforms/cocoa/qcocoamenu.mm +++ b/src/plugins/platforms/cocoa/qcocoamenu.mm @@ -222,7 +222,8 @@ QCocoaMenu::QCocoaMenu() : m_enabled(true), m_visible(true), m_tag(0), - m_menuBar(0) + m_menuBar(0), + m_containingMenuItem(0) { m_delegate = [[QCocoaMenuDelegate alloc] initWithMenu:this]; m_nativeItem = [[NSMenuItem alloc] initWithTitle:@"" action:nil keyEquivalent:@""]; @@ -238,6 +239,10 @@ QCocoaMenu::~QCocoaMenu() if (COCOA_MENU_ANCESTOR(item) == this) SET_COCOA_MENU_ANCESTOR(item, 0); } + + if (m_containingMenuItem) + m_containingMenuItem->clearMenu(this); + QCocoaAutoReleasePool pool; [m_nativeItem setSubmenu:nil]; [m_nativeMenu release]; @@ -568,4 +573,14 @@ QCocoaMenuBar *QCocoaMenu::menuBar() const return m_menuBar; } +void QCocoaMenu::setContainingMenuItem(QCocoaMenuItem *menuItem) +{ + m_containingMenuItem = menuItem; +} + +QCocoaMenuItem *QCocoaMenu::containingMenuItem() const +{ + return m_containingMenuItem; +} + QT_END_NAMESPACE |