From 73a448f68a476ccc4aaa485cdc07906e421515c5ddf8f46a544e9836a67c7115 Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Wed, 10 Jun 2020 16:50:47 +0000 Subject: [PATCH] Accepting request 813233 from home:Vogtinator:qt5.15 - Add patch to fix tool menu placement (boo#1172754, QTBUG-84462): * 0001-Fix-QToolButton-menus-showing-on-primary-screens-in-.patch OBS-URL: https://build.opensuse.org/request/show/813233 OBS-URL: https://build.opensuse.org/package/show/KDE:Qt:5.15/libqt5-qtbase?expand=0&rev=11 --- ...menus-showing-on-primary-screens-in-.patch | 37 +++++++++++++++++++ libqt5-qtbase.changes | 6 +++ libqt5-qtbase.spec | 6 ++- 3 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 0001-Fix-QToolButton-menus-showing-on-primary-screens-in-.patch diff --git a/0001-Fix-QToolButton-menus-showing-on-primary-screens-in-.patch b/0001-Fix-QToolButton-menus-showing-on-primary-screens-in-.patch new file mode 100644 index 0000000..4501a30 --- /dev/null +++ b/0001-Fix-QToolButton-menus-showing-on-primary-screens-in-.patch @@ -0,0 +1,37 @@ +From f16d0e41bb638ffc1d83ca48321073eca1b86b42 Mon Sep 17 00:00:00 2001 +From: Friedemann Kleint +Date: Wed, 10 Jun 2020 11:26:00 +0200 +Subject: [PATCH] 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 +--- + src/widgets/widgets/qtoolbutton.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +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; +-- +2.25.1 + diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index fe1b4cf..b647f74 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Jun 10 12:31:44 UTC 2020 - Fabian Vogt + +- Add patch to fix tool menu placement (boo#1172754, QTBUG-84462): + * 0001-Fix-QToolButton-menus-showing-on-primary-screens-in-.patch + ------------------------------------------------------------------- Wed May 27 08:48:52 UTC 2020 - Fabian Vogt diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index 45331bf..700fd33 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -66,10 +66,12 @@ Patch12: 0001-Add-remote-print-queue-support.patch # PATCH-FIX-OPENSUSE Patch21: 0001-Don-t-white-list-recent-Mesa-versions-for-multithrea.patch Patch24: fix-fixqt4headers.patch -# patches 1000-2000 and above from upstream 5.14 branch # -# patches 2000-3000 and above from upstream 5.15/dev branch # +# patches 1000-2000 and above from upstream 5.15 branch # +# patches 2000-3000 and above from upstream qt6/dev branch # # Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/255384 Patch2001: 0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch +# Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/303786 +Patch2002: 0001-Fix-QToolButton-menus-showing-on-primary-screens-in-.patch BuildRequires: alsa-devel BuildRequires: cups-devel BuildRequires: double-conversion-devel