diff --git a/src/FlightDisplay/FlightDisplayView.qml b/src/FlightDisplay/FlightDisplayView.qml index 36bc167c0f875484ee6467e9eb46d6314979215e..c7a0d23c5a9e1f64f456b53d34860f15884da2fa 100644 --- a/src/FlightDisplay/FlightDisplayView.qml +++ b/src/FlightDisplay/FlightDisplayView.qml @@ -232,7 +232,10 @@ Item { MultiPointTouchArea { anchors.fill: parent - maximumTouchPoints: 2 + touchPoints: [ + TouchPoint { id: point1 }, + TouchPoint { id: point2 } + ] property var leftRect: Qt.rect(0, 0, parent.thumbAreaHeight, parent.thumbAreaHeight) property var rightRect: Qt.rect(parent.width - parent.thumbAreaHeight, 0, parent.thumbAreaHeight, parent.thumbAreaHeight) @@ -251,6 +254,7 @@ Item { var point1 if (touchPoints.length > 0) { + //console.log("Point1", touchPoints[0].x, touchPoints[0].y) point1 = touchPoints[0] if (pointInRect(leftRect, point1)) { point1Location = -1 @@ -261,6 +265,7 @@ Item { var point2 if (touchPoints.length == 2) { + //console.log("Point2", touchPoints[1].x, touchPoints[1].y) point2 = touchPoints[1] if (pointInRect(leftRect, point2)) { point2Location = -1 @@ -269,33 +274,39 @@ Item { } } + var leftStickSet = false + var rightStickSet = false + // Make sure points are not both in the same rect if (point1Location != point2Location) { if (point1Location != 0) { if (point1Location == -1) { leftStick.stickPosition = point1 + leftStickSet = true } else { rightStick.stickPosition = Qt.point(point1.x - (multiTouchItem.width - multiTouchItem.thumbAreaHeight), point1.y) + rightStickSet = true } } if (point2Location != 0) { if (point2Location == -1) { - rightStick.stickPosition = Qt.point(point2.x - (multiTouchItem.width - multiTouchItem.thumbAreaHeight), point2.y) - } else { leftStick.stickPosition = point2 + leftStickSet = true + } else { + rightStick.stickPosition = Qt.point(point2.x - (multiTouchItem.width - multiTouchItem.thumbAreaHeight), point2.y) + rightStickSet = true } } } + if (!leftStickSet) { + leftStick.reCenter() + } + if (!rightStickSet) { + rightStick.reCenter() + } } - onPressed: newTouchPoints(touchPoints) onTouchUpdated: newTouchPoints(touchPoints) - - onReleased: { - leftStick.reCenter() - rightStick.reCenter() - } - } Timer { diff --git a/src/QmlControls/JoystickThumbPad.qml b/src/QmlControls/JoystickThumbPad.qml index 03c43ece44252416c9b848b72f55afbfeab5825e..2869df958bbdb2111c6cc3a240d94db162963ac6 100644 --- a/src/QmlControls/JoystickThumbPad.qml +++ b/src/QmlControls/JoystickThumbPad.qml @@ -46,10 +46,13 @@ Rectangle { stickPosition = Qt.point(width / 2, width / 2) } + /* + Keep in for debugging Column { QGCLabel { text: xAxis } QGCLabel { text: yAxis } } + */ Rectangle { anchors.margins: parent.width / 4