diff options
author | Johan Klokkhammer Helsing <johan.helsing@qt.io> | 2017-10-04 12:50:40 +0200 |
---|---|---|
committer | Johan Helsing <johan.helsing@qt.io> | 2017-11-24 09:14:47 +0000 |
commit | aceef1e96cb2b2e59a44604fb39981d9592f6e7b (patch) | |
tree | aef09621648e489ebb800a09286f99b7f6a97513 /src | |
parent | 797a761091234de98f78ad86144264b76d2290d7 (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.cpp | 8 |
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); } /*! |