summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel/qmultitouch_mac.mm
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/kernel/qmultitouch_mac.mm')
-rw-r--r--src/gui/kernel/qmultitouch_mac.mm11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/gui/kernel/qmultitouch_mac.mm b/src/gui/kernel/qmultitouch_mac.mm
index d3d423c..d9cb8b6 100644
--- a/src/gui/kernel/qmultitouch_mac.mm
+++ b/src/gui/kernel/qmultitouch_mac.mm
@@ -83,17 +83,18 @@ void QCocoaTouch::updateTouchData(NSTouch *nstouch, NSTouchPhase phase)
// where on screen the touchpoint should be according to the
// reference position:
NSPoint npos = [nstouch normalizedPosition];
- _trackpadPos = QPointF(npos.x, npos.y);
+ QPointF qnpos = QPointF(npos.x, 1 - npos.y);
+ _touchPoint.setNormalizedPos(qnpos);
if (_touchPoint.id() == 0 && phase == NSTouchPhaseBegan) {
- _trackpadReferencePos = _trackpadPos;
+ _trackpadReferencePos = qnpos;
_screenReferencePos = QCursor::pos();
}
NSSize dsize = [nstouch deviceSize];
- float ppiX = (_trackpadPos.x() - _trackpadReferencePos.x()) * dsize.width;
- float ppiY = (_trackpadPos.y() - _trackpadReferencePos.y()) * dsize.height;
- QPointF relativePos = _trackpadReferencePos - QPointF(ppiX, 1 - ppiY);
+ float ppiX = (qnpos.x() - _trackpadReferencePos.x()) * dsize.width;
+ float ppiY = (qnpos.y() - _trackpadReferencePos.y()) * dsize.height;
+ QPointF relativePos = _trackpadReferencePos - QPointF(ppiX, ppiY);
_touchPoint.setScreenPos(_screenReferencePos - relativePos);
}