diff --git a/libdbusmenuqt/dbusmenuimporter.cpp b/libdbusmenuqt/dbusmenuimporter.cpp --- a/libdbusmenuqt/dbusmenuimporter.cpp +++ b/libdbusmenuqt/dbusmenuimporter.cpp @@ -431,11 +431,8 @@ sendClickedEvent(id); }); - if (action->menu()) { - auto menu = action->menu(); - connect(menu, &QMenu::aboutToShow, this, [menu, this]() { - updateMenu(menu); - }); + if (QMenu *menuAction = action->menu()) { + connect(menuAction, &QMenu::aboutToShow, this, &DBusMenuImporter::slotMenuAboutToShow, Qt::UniqueConnection); } connect(menu, &QMenu::aboutToHide, this, &DBusMenuImporter::slotMenuAboutToHide, Qt::UniqueConnection); @@ -527,6 +524,8 @@ QMenu *menu = qobject_cast(sender()); Q_ASSERT(menu); + updateMenu(menu); + QAction *action = menu->menuAction(); Q_ASSERT(action);