summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/winrt/qwinrtcursor.cpp
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2018-09-29 01:00:09 +0200
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2018-09-29 01:00:10 +0200
commit0e1866017fd389629629b150ce252820592506cd (patch)
tree681142ae0e610ef7af2a43ca2d62c3ea5ed5f91a /src/plugins/platforms/winrt/qwinrtcursor.cpp
parent9567a34bc0d9be87d3b0d6cbcb841837ca1d5659 (diff)
parent9a8175a13124e156948914854d2fda7436065b08 (diff)
Merge remote-tracking branch 'origin/5.12' into dev
Diffstat (limited to 'src/plugins/platforms/winrt/qwinrtcursor.cpp')
-rw-r--r--src/plugins/platforms/winrt/qwinrtcursor.cpp20
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)