summaryrefslogtreecommitdiffstats
path: root/src/widgets/util/qcompleter.cpp
diff options
context:
space:
mode:
authorYin Jie <yj.watermelon@gmail.com>2021-12-16 13:37:53 +0800
committerVolker Hilsheimer <volker.hilsheimer@qt.io>2022-02-15 01:28:30 +0000
commit60a67dc41eb79ed488e8509769a2e2b96bed93bb (patch)
treeba8c094ec0386a7cb5efd05d0de04d63141bb82f /src/widgets/util/qcompleter.cpp
parent936771d9013b283e5d9a586e77ef1f67d1618509 (diff)
Position QCompleter popup based on the widget's screen geometry
If adding a QLineEdit to a QGraphicsScene as a QGraphicsProxyWidget, the popup completion of that QLineEdit is drawn in the wrong location. When the completer getting the rect of screen, it gets the rect of the QGraphicsScene where QLineEdit is located rather than the rect of the screen, resulting in an error in the following calculation. Note that as long as the completer popup is a toplevel widget not parented to the target widget, it will not be automatically embedded into the graphics view via QGraphicsProxyWidget. So with multiple views for a scene, or in views that use transformations, the geometry will still be off. Pick-to: 6.3 Task-number: QTBUG-20531 Change-Id: If5d8a707ca35a9e4709117b077978145c6143e46 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'src/widgets/util/qcompleter.cpp')
-rw-r--r--src/widgets/util/qcompleter.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/widgets/util/qcompleter.cpp b/src/widgets/util/qcompleter.cpp
index ab3703abe4..115af89de2 100644
--- a/src/widgets/util/qcompleter.cpp
+++ b/src/widgets/util/qcompleter.cpp
@@ -921,7 +921,7 @@ void QCompleterPrivate::_q_autoResizePopup()
void QCompleterPrivate::showPopup(const QRect& rect)
{
- const QRect screen = QWidgetPrivate::availableScreenGeometry(widget);
+ const QRect screen = widget->screen()->availableGeometry();
Qt::LayoutDirection dir = widget->layoutDirection();
QPoint pos;
int rh, w;