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-05 00:39:51 +0000 |
commit | 591065dc4a710975046b6f24a61859b66fd7bd33 (patch) | |
tree | 3a89f1ef715a7371bdc9eda2f7751dff72c81e4a | |
parent | ec80adf322e504183d8579e80604a17f236eeed9 (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 16e3975718..af8d8de083 100644 --- a/src/quick/items/qquickitem.cpp +++ b/src/quick/items/qquickitem.cpp @@ -7568,7 +7568,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))); } /*! @@ -7735,7 +7735,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; } @@ -7764,7 +7764,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 680398e2e9..a9e7a9cfab 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; |