summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJohan Klokkhammer Helsing <johan.helsing@qt.io>2017-10-04 12:50:40 +0200
committerJohan Helsing <johan.helsing@qt.io>2017-11-24 09:14:47 +0000
commitaceef1e96cb2b2e59a44604fb39981d9592f6e7b (patch)
treeaef09621648e489ebb800a09286f99b7f6a97513 /src
parent797a761091234de98f78ad86144264b76d2290d7 (diff)
Fix mapToSurface when item dimensions are set by the compositor
Change-Id: I94dba4a1b2ef8e3f5db48fb403ed602e45340012 Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
Diffstat (limited to 'src')
-rw-r--r--src/compositor/compositor_api/qwaylandquickitem.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/compositor/compositor_api/qwaylandquickitem.cpp b/src/compositor/compositor_api/qwaylandquickitem.cpp
index 85c8bc2dd..ed4492038 100644
--- a/src/compositor/compositor_api/qwaylandquickitem.cpp
+++ b/src/compositor/compositor_api/qwaylandquickitem.cpp
@@ -1019,7 +1019,13 @@ bool QWaylandQuickItem::inputRegionContains(const QPointF &localPosition)
QPointF QWaylandQuickItem::mapToSurface(const QPointF &point) const
{
Q_D(const QWaylandQuickItem);
- return point / d->scaleFactor();
+ if (!surface() || surface()->size().isEmpty())
+ return point / d->scaleFactor();
+
+ qreal xScale = width() / surface()->size().width();
+ qreal yScale = height() / surface()->size().height();
+
+ return QPointF(point.x() / xScale, point.y() / yScale);
}
/*!