summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-07-06 13:52:42 +0200
committerLiang Qi <liang.qi@qt.io>2017-07-06 13:54:25 +0200
commit7f269a5db8b88fbb14ee741f78e726b1a46c7d4d (patch)
treefa63387e6f70187e656dd9e6c4f1cd1b1f96c263 /src/plugins/platforms/cocoa
parent9ca3443a37284bedaf74475c26af173b00757178 (diff)
parent03b4838cb51513bd5d2edf76dccc4bc4a1181681 (diff)
Merge remote-tracking branch 'origin/5.9' into dev
Conflicts: .qmake.conf Change-Id: I43531e087bb810889d5c1fbfcdffb29b78804839
Diffstat (limited to 'src/plugins/platforms/cocoa')
-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()