From b24bf21fcbee73c9af87b60f890d741c31066fa9 Mon Sep 17 00:00:00 2001 From: Pasi Matilainen Date: Mon, 2 Apr 2012 13:38:03 +0300 Subject: Do not set an action on native submenu items on Mac MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On Mac, clicking on a submenu entry triggers QMenu::triggered(QAction*) signal, which is unexpected, and also closes the submenu, which does not match platform behavior. This happens because native submenu items have an action set, so fix it by not setting the action. Task-number: QTBUG-16738 Task-number: QTBUG-10706 Change-Id: I6819999e5af35e6acab1aec035d5d85445189f11 Reviewed-by: James Turner Reviewed-by: Morten Johan Sørvig --- src/plugins/platforms/cocoa/qcocoamenu.mm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/plugins/platforms/cocoa/qcocoamenu.mm b/src/plugins/platforms/cocoa/qcocoamenu.mm index 9e466deb9a..e64386cc5a 100644 --- a/src/plugins/platforms/cocoa/qcocoamenu.mm +++ b/src/plugins/platforms/cocoa/qcocoamenu.mm @@ -133,7 +133,8 @@ void QCocoaMenu::insertMenuItem(QPlatformMenuItem *menuItem, QPlatformMenuItem * void QCocoaMenu::insertNative(QCocoaMenuItem *item, QCocoaMenuItem *beforeItem) { [item->nsItem() setTarget:m_delegate]; - [item->nsItem() setAction:@selector(itemFired:)]; + if (!item->menu()) + [item->nsItem() setAction:@selector(itemFired:)]; if (item->isMerged()) return; -- cgit v1.2.3