summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/platforms/cocoa/qcocoamenubar.mm18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoamenubar.mm b/src/plugins/platforms/cocoa/qcocoamenubar.mm
index 82c405baa6..4cdf004dd1 100644
--- a/src/plugins/platforms/cocoa/qcocoamenubar.mm
+++ b/src/plugins/platforms/cocoa/qcocoamenubar.mm
@@ -303,7 +303,23 @@ void QCocoaMenuBar::resetKnownMenuItemsToQt()
// Undo the effect of redirectKnownMenuItemsToFirstResponder():
// set the menu items' actions to itemFired and their targets to
// the QCocoaMenuDelegate.
- updateMenuBarImmediately();
+ foreach (QCocoaMenuBar *mb, static_menubars) {
+ foreach (QCocoaMenu *m, mb->m_menus) {
+ foreach (QCocoaMenuItem *i, m->items()) {
+ switch (i->effectiveRole()) {
+ case QPlatformMenuItem::CutRole:
+ case QPlatformMenuItem::CopyRole:
+ case QPlatformMenuItem::PasteRole:
+ case QPlatformMenuItem::SelectAllRole:
+ [i->nsItem() setTarget:m->nsMenu().delegate];
+ [i->nsItem() setAction:@selector(itemFired:)];
+ break;
+ default:
+ break;
+ }
+ }
+ }
+ }
}
void QCocoaMenuBar::updateMenuBarImmediately()