From 7db24dd86462fd34bc7af9879093ec48f70ebabe Mon Sep 17 00:00:00 2001 From: Ivan Komissarov Date: Thu, 1 May 2014 21:26:05 +0400 Subject: QMenu: Use Qt::QueuedConnection when connecting to native menu. This fix allows to catch exeptions thrown in slots connected to QAction::triggered() signal via QApplication::notify(). Task-number: QTBUG-15197 Change-Id: I6f3e51ec39139ffb0a5f3a31b79f839c18089b26 Reviewed-by: Andy Shaw Reviewed-by: Gabriel de Dietrich --- src/widgets/widgets/qmenu.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/widgets/widgets/qmenu.cpp b/src/widgets/widgets/qmenu.cpp index 403ebe7f49..a3f776fe32 100644 --- a/src/widgets/widgets/qmenu.cpp +++ b/src/widgets/widgets/qmenu.cpp @@ -187,8 +187,8 @@ void QMenuPrivate::syncPlatformMenu() QPlatformMenuItem *menuItem = platformMenu->createMenuItem(); QAction *action = it.previous(); menuItem->setTag(reinterpret_cast(action)); - QObject::connect(menuItem, SIGNAL(activated()), action, SLOT(trigger())); - QObject::connect(menuItem, SIGNAL(hovered()), action, SIGNAL(hovered())); + QObject::connect(menuItem, SIGNAL(activated()), action, SLOT(trigger()), Qt::QueuedConnection); + QObject::connect(menuItem, SIGNAL(hovered()), action, SIGNAL(hovered()), Qt::QueuedConnection); copyActionToPlatformItem(action, menuItem); platformMenu->insertMenuItem(menuItem, beforeItem); beforeItem = menuItem; -- cgit v1.2.3