From 074f71cfdabd49ae23ac956a9459c8e13f8e627e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Johan=20S=C3=B8rvig?= Date: Fri, 21 Aug 2020 14:48:50 +0200 Subject: [PATCH] Display tooltips on the correct screen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Display QTipLabel on the correct screen, also when the parent widget spans multiple screens. In this case, QWidget::screen() will return the main screen for the widget, which will not necessarily be the screen at the tool tip position. Fixes regression introduced by 7e2fded5. Change-Id: Iffb920b6658468c5032928eadbd749f58fe077a7 Reviewed-by: Morten Johan Sørvig --- src/widgets/kernel/qtooltip.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/widgets/kernel/qtooltip.cpp b/src/widgets/kernel/qtooltip.cpp index ca29cdcc9c..b397bf9835 100644 --- a/src/widgets/kernel/qtooltip.cpp +++ b/src/widgets/kernel/qtooltip.cpp @@ -361,7 +361,9 @@ bool QTipLabel::eventFilter(QObject *o, QEvent *e) QScreen *QTipLabel::getTipScreen(const QPoint &pos, QWidget *w) { - return w ? w->screen() : QGuiApplication::primaryScreen()->virtualSiblingAt(pos); + QScreen *guess = w ? w->screen() : QGuiApplication::primaryScreen(); + QScreen *exact = guess->virtualSiblingAt(pos); + return exact ? exact : guess; } void QTipLabel::placeTip(const QPoint &pos, QWidget *w)