diff options
Diffstat (limited to 'src/widgets/widgets/qmenu.cpp')
-rw-r--r-- | src/widgets/widgets/qmenu.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/widgets/widgets/qmenu.cpp b/src/widgets/widgets/qmenu.cpp index 514cb1a8c9..1b9e31968a 100644 --- a/src/widgets/widgets/qmenu.cpp +++ b/src/widgets/widgets/qmenu.cpp @@ -117,7 +117,7 @@ public: { Q_D(QTornOffMenu); // make the torn-off menu a sibling of p (instead of a child) - QWidget *parentWidget = d->causedStack.isEmpty() ? p : d->causedStack.last(); + QWidget *parentWidget = d->causedStack.isEmpty() ? p : d->causedStack.constLast(); if (parentWidget->parentWidget()) parentWidget = parentWidget->parentWidget(); setParent(parentWidget, Qt::Window | Qt::Tool); @@ -1270,14 +1270,17 @@ void QMenuPrivate::_q_platformMenuAboutToShow() Q_Q(QMenu); #ifdef Q_OS_OSX - if (platformMenu) - Q_FOREACH (QAction *action, q->actions()) + if (platformMenu) { + const auto actions = q->actions(); + for (QAction *action : actions) { if (QWidget *widget = widgetItems.value(action)) if (widget->parent() == q) { QPlatformMenuItem *menuItem = platformMenu->menuItemForTag(reinterpret_cast<quintptr>(action)); moveWidgetToPlatformItem(widget, menuItem); platformMenu->syncMenuItem(menuItem); } + } + } #endif emit q->aboutToShow(); |