diff options
Diffstat (limited to 'src/plugins/platforms/winrt/qwinrtcursor.cpp')
-rw-r--r-- | src/plugins/platforms/winrt/qwinrtcursor.cpp | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/src/plugins/platforms/winrt/qwinrtcursor.cpp b/src/plugins/platforms/winrt/qwinrtcursor.cpp index f22b9a435a..180905945b 100644 --- a/src/plugins/platforms/winrt/qwinrtcursor.cpp +++ b/src/plugins/platforms/winrt/qwinrtcursor.cpp @@ -78,10 +78,6 @@ QWinRTCursor::QWinRTCursor() Q_ASSERT_SUCCEEDED(hr); } -QWinRTCursor::~QWinRTCursor() -{ -} - #ifndef QT_NO_CURSOR void QWinRTCursor::changeCursor(QCursor *windowCursor, QWindow *window) { @@ -183,14 +179,15 @@ QPoint QWinRTCursor::pos() const return hr; }); Q_ASSERT_SUCCEEDED(hr); - QPoint position = QPoint(point.X, point.Y); + QPointF position(qreal(point.X), qreal(point.Y)); // If no cursor get_PointerPosition returns SHRT_MIN for x and y - if (position.x() == SHRT_MIN && position.y() == SHRT_MIN || FAILED(hr)) + if ((int(position.x()) == SHRT_MIN && int(position.y()) == SHRT_MIN) + || FAILED(hr)) return QPointF(Q_INFINITY, Q_INFINITY).toPoint(); - position.rx() -= bounds.X; - position.ry() -= bounds.Y; + position.rx() -= qreal(bounds.X); + position.ry() -= qreal(bounds.Y); position *= screen->scaleFactor(); - return position; + return position.toPoint(); } void QWinRTCursor::setPos(const QPoint &pos) @@ -199,7 +196,7 @@ void QWinRTCursor::setPos(const QPoint &pos) Q_ASSERT(screen); ComPtr<ICoreWindow> coreWindow = screen->coreWindow(); Q_ASSERT(coreWindow); - const QPointF scaledPos = pos / screen->scaleFactor(); + const QPointF scaledPos = QPointF(pos) / screen->scaleFactor(); QWinRTScreen::MousePositionTransition t; HRESULT hr = QEventDispatcherWinRT::runOnXamlThread([coreWindow, scaledPos, &t]() { ComPtr<ICoreWindow2> coreWindow2; @@ -211,7 +208,8 @@ void QWinRTCursor::setPos(const QPoint &pos) Point mousePos; hr = coreWindow->get_PointerPosition(&mousePos); RETURN_HR_IF_FAILED("Failed to obtain mouse position."); - const Point p = {FLOAT(scaledPos.x() + bounds.X), FLOAT(scaledPos.y() + bounds.Y)}; + const Point p = { FLOAT(scaledPos.x()) + bounds.X, + FLOAT(scaledPos.y()) + bounds.Y }; const bool wasInWindow = qIsPointInRect(mousePos, bounds); const bool willBeInWindow = qIsPointInRect(p, bounds); if (wasInWindow && willBeInWindow) |