From 1a3b8bf0e7d6ff727f9dffacab2360d1c01b397e Mon Sep 17 00:00:00 2001 From: David Schulz Date: Wed, 11 Aug 2021 07:09:09 +0200 Subject: [PATCH] Editor: Fix completion tooltip width calculation Take the offset of the geometry into account when calculating the available with for the tooltip. This can happen if you have multiple monitors and the tooltip is positioned on the right monitor. amends 30cdae912f1ab7c0960d172189a69b6893d185eb Fixes: QTCREATORBUG-26053 Change-Id: I4116547279f3c6708f55a1e1cf7d4ceb76028f9a Reviewed-by: Eike Ziller --- src/plugins/texteditor/codeassist/genericproposalwidget.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/plugins/texteditor/codeassist/genericproposalwidget.cpp b/src/plugins/texteditor/codeassist/genericproposalwidget.cpp index b920ffd6098..e0072b039d5 100644 --- a/src/plugins/texteditor/codeassist/genericproposalwidget.cpp +++ b/src/plugins/texteditor/codeassist/genericproposalwidget.cpp @@ -143,12 +143,13 @@ public: // Workaround QTCREATORBUG-11653 void calculateMaximumWidth() { - const int desktopWidth = screen()->availableGeometry().width(); + const QRect screenGeometry = screen()->availableGeometry(); + const int xOnScreen = this->pos().x() - screenGeometry.x(); const QMargins widgetMargins = contentsMargins(); const QMargins layoutMargins = layout()->contentsMargins(); const int margins = widgetMargins.left() + widgetMargins.right() + layoutMargins.left() + layoutMargins.right(); - m_label->setMaximumWidth(desktopWidth - this->pos().x() - margins); + m_label->setMaximumWidth(qMax(0, screenGeometry.width() - xOnScreen - margins)); } private: