diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-09-29 01:00:09 +0200 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-09-29 01:00:10 +0200 |
commit | 0e1866017fd389629629b150ce252820592506cd (patch) | |
tree | 681142ae0e610ef7af2a43ca2d62c3ea5ed5f91a /src/plugins/platforms/winrt/qwinrtcursor.cpp | |
parent | 9567a34bc0d9be87d3b0d6cbcb841837ca1d5659 (diff) | |
parent | 9a8175a13124e156948914854d2fda7436065b08 (diff) |
Merge remote-tracking branch 'origin/5.12' into dev
Change-Id: I6083c3e61b7dbe188f83676f7e7bb268e5ccf2f3
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) |