summaryrefslogtreecommitdiff
path: root/src/plugins/coreplugin/actionmanager
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@nokia.com>2012-05-02 13:53:46 +0200
committerEike Ziller <eike.ziller@nokia.com>2012-05-02 13:53:46 +0200
commitb1216cf376653c942c0f96b025180b3cf393eb38 (patch)
tree8dbefbfb256479efb078be223b7f015ffa537e37 /src/plugins/coreplugin/actionmanager
parent1c1736944fdbd1b6b8e783e217d326c310fa7080 (diff)
parentf059018a8eeab714647685e43473f348e3b3d3c9 (diff)
downloadqt-creator-b1216cf376653c942c0f96b025180b3cf393eb38.tar.gz
Merge remote-tracking branch 'origin/2.5'
Conflicts: src/plugins/coreplugin/mainwindow.cpp Change-Id: I975a4208588d174ebb44054de56c5ac8d7c878fe
Diffstat (limited to 'src/plugins/coreplugin/actionmanager')
-rw-r--r--src/plugins/coreplugin/actionmanager/actioncontainer.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/plugins/coreplugin/actionmanager/actioncontainer.cpp b/src/plugins/coreplugin/actionmanager/actioncontainer.cpp
index ed771668b3..83329ef46c 100644
--- a/src/plugins/coreplugin/actionmanager/actioncontainer.cpp
+++ b/src/plugins/coreplugin/actionmanager/actioncontainer.cpp
@@ -402,11 +402,27 @@ void MenuActionContainer::removeMenu(QMenu *menu)
m_menu->removeAction(menu->menuAction());
}
+static bool menuInMenuBar(const QMenu *menu)
+{
+ foreach (const QWidget *widget, menu->menuAction()->associatedWidgets()) {
+ if (qobject_cast<const QMenuBar *>(widget))
+ return true;
+ }
+ return false;
+}
+
bool MenuActionContainer::updateInternal()
{
if (onAllDisabledBehavior() == Show)
return true;
+#ifdef Q_OS_MAC
+ // work around QTBUG-25544 which makes menus in the menu bar stay at their enabled state at startup
+ // (so menus that are disabled at startup would stay disabled)
+ if (menuInMenuBar(m_menu))
+ return true;
+#endif
+
bool hasitems = false;
QList<QAction *> actions = m_menu->actions();