diff options
author | Shawn Rutledge <shawn.rutledge@qt.io> | 2022-02-01 07:51:44 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2022-02-04 23:30:17 +0000 |
commit | f5d48eb84a0855b0a9492ee6eb3b2fba8f108889 (patch) | |
tree | 190b0689efd5e168f27baddd23aa678d865c518e | |
parent | 3043f0ae49e877e8f7c39189fe95d76f36c8e2be (diff) |
Stop using QGuiApplicationPrivate::lastCursorPosition.toPoint()
QGuiApplicationPrivate::lastCursorPosition is initialized with qInf();
so before the mouse cursor has moved, attempting to convert to QPoint
is an error. QWindow::mapFromGlobal(const QPointF &) exists in Qt 6
so hopefully there's no reason to convert it anyway.
Task-number: QTBUG-45045
Task-number: QTBUG-52472
Change-Id: I6ab651e874ed0af2f18735f8bd8eb374a4781bcb
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
(cherry picked from commit 8fe35a003b04d31f09d3e83a03ffa2843266f9b5)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r-- | src/quick/items/qquickitem.cpp | 6 | ||||
-rw-r--r-- | src/quick/util/qquickdeliveryagent.cpp | 4 |
2 files changed, 5 insertions, 5 deletions
diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp index b1d61e7329..8fb094e9b4 100644 --- a/src/quick/items/qquickitem.cpp +++ b/src/quick/items/qquickitem.cpp @@ -7780,7 +7780,7 @@ bool QQuickItem::isUnderMouse() const return false; QPointF cursorPos = QGuiApplicationPrivate::lastCursorPosition; - return contains(mapFromScene(d->window->mapFromGlobal(cursorPos.toPoint()))); + return contains(mapFromScene(d->window->mapFromGlobal(cursorPos))); } /*! @@ -7947,7 +7947,7 @@ void QQuickItem::setCursor(const QCursor &cursor) if (d->window) { QWindow *renderWindow = QQuickRenderControl::renderWindowFor(d->window); QWindow *window = renderWindow ? renderWindow : d->window; - QPointF pos = window->mapFromGlobal(QGuiApplicationPrivate::lastCursorPosition.toPoint()); + QPointF pos = window->mapFromGlobal(QGuiApplicationPrivate::lastCursorPosition); if (contains(mapFromScene(pos))) updateCursorPos = pos; } @@ -7976,7 +7976,7 @@ void QQuickItem::unsetCursor() if (d->window) { QQuickWindowPrivate *windowPrivate = QQuickWindowPrivate::get(d->window); if (windowPrivate->cursorItem == this) { - QPointF pos = d->window->mapFromGlobal(QGuiApplicationPrivate::lastCursorPosition.toPoint()); + QPointF pos = d->window->mapFromGlobal(QGuiApplicationPrivate::lastCursorPosition); windowPrivate->updateCursor(pos); } } diff --git a/src/quick/util/qquickdeliveryagent.cpp b/src/quick/util/qquickdeliveryagent.cpp index 643225ed8e..0e9bf42905 100644 --- a/src/quick/util/qquickdeliveryagent.cpp +++ b/src/quick/util/qquickdeliveryagent.cpp @@ -238,7 +238,7 @@ bool QQuickDeliveryAgentPrivate::deliverTouchAsMouse(QQuickItem *item, QTouchEve if (item->acceptHoverEvents() && p.globalPosition() != QGuiApplicationPrivate::lastCursorPosition) { QPointF localMousePos(qInf(), qInf()); if (QWindow *w = item->window()) - localMousePos = item->mapFromScene(w->mapFromGlobal(QGuiApplicationPrivate::lastCursorPosition.toPoint())); + localMousePos = item->mapFromScene(w->mapFromGlobal(QGuiApplicationPrivate::lastCursorPosition)); QMouseEvent mm(QEvent::MouseMove, localMousePos, QGuiApplicationPrivate::lastCursorPosition, Qt::NoButton, Qt::NoButton, event.modifiers()); QCoreApplication::sendEvent(item, &mm); @@ -608,7 +608,7 @@ bool QQuickDeliveryAgentPrivate::clearHover(ulong timestamp) if (!window) return false; - const QPointF lastPos = window->mapFromGlobal(QGuiApplicationPrivate::lastCursorPosition.toPoint()); + const QPointF lastPos = window->mapFromGlobal(QGuiApplicationPrivate::lastCursorPosition); const auto modifiers = QGuiApplication::keyboardModifiers(); const bool clearHover = true; |