diff options
author | Yin Jie <yj.watermelon@gmail.com> | 2021-12-16 13:37:53 +0800 |
---|---|---|
committer | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2022-02-15 01:28:30 +0000 |
commit | 60a67dc41eb79ed488e8509769a2e2b96bed93bb (patch) | |
tree | ba8c094ec0386a7cb5efd05d0de04d63141bb82f /src/widgets/util/qcompleter.cpp | |
parent | 936771d9013b283e5d9a586e77ef1f67d1618509 (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.cpp | 2 |
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; |