summaryrefslogtreecommitdiffstats
path: root/src/widgets
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2020-06-10 11:26:00 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2020-06-10 19:59:12 +0200
commitad532ce118b7052be3b69999cef2eb610e66fa88 (patch)
treebf381ad746b5186c0cc26b2de744a191443d4f3a /src/widgets
parentfa5ae7635660cc382d0b0ed3ce728433848e4ec3 (diff)
Fix QToolButton menus showing on primary screens in multiscreen setups
Calculate an initial position based on the current size hint and pass it to QMenuPrivate::exec(), which does screen checks based on it. Amends a78d66743171557d79b16c08be775e3ac15bb4ef. Pick-to: 5.15 Fixes: QTBUG-84462 Task-number: QTBUG-78966 Change-Id: Icae8d2bc0fb50c4c853cfebaa2b2250fc06542e3 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'src/widgets')
-rw-r--r--src/widgets/widgets/qtoolbutton.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/widgets/widgets/qtoolbutton.cpp b/src/widgets/widgets/qtoolbutton.cpp
index edd4788806..0b090d2bac 100644
--- a/src/widgets/widgets/qtoolbutton.cpp
+++ b/src/widgets/widgets/qtoolbutton.cpp
@@ -805,7 +805,8 @@ void QToolButtonPrivate::popupTimerDone()
// QTBUG-78966, Delay positioning until after aboutToShow().
auto positionFunction = [q, horizontal](const QSize &sizeHint) {
return positionMenu(q, horizontal, sizeHint); };
- actualMenu->d_func()->exec({}, nullptr, positionFunction);
+ const auto initialPos = positionFunction(actualMenu->sizeHint());
+ actualMenu->d_func()->exec(initialPos, nullptr, positionFunction);
if (!that)
return;