From 2c2a3a9bef9652a6de7213ca88a7c3de72f20e2b Mon Sep 17 00:00:00 2001 From: Mikhail Khachayants Date: Mon, 17 May 2021 13:31:41 +0300 Subject: [PATCH] Utils: Fix crash on showing tooltips when screen configuration changed Check QGuiApplication::screenAt(QPoint) return value. TextTip will use QGuiApplication::primaryScreen() if it's nullptr. Fixes: QTCREATORBUG-25747 Change-Id: If02648966e24f96f8c9a92e91b2bd27c1efc5f9e Reviewed-by: Eike Ziller --- src/libs/utils/tooltip/tips.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/libs/utils/tooltip/tips.cpp b/src/libs/utils/tooltip/tips.cpp index cab6bad63c0..2a1f4f8093f 100644 --- a/src/libs/utils/tooltip/tips.cpp +++ b/src/libs/utils/tooltip/tips.cpp @@ -206,7 +206,12 @@ void TextTip::configure(const QPoint &pos) // Try to find a nice width without unnecessary wrapping. setWordWrap(false); int tipWidth = sizeHint().width(); - const int screenWidth = QGuiApplication::screenAt(pos)->availableGeometry().width(); + + QScreen *screen = QGuiApplication::screenAt(pos); + if (!screen) + screen = QGuiApplication::primaryScreen(); + + const int screenWidth = screen->availableGeometry().width(); const int maxDesiredWidth = int(screenWidth * .5); if (tipWidth > maxDesiredWidth) { setWordWrap(true);