From c3e3a4e72f752aef525b5c353c05fb5e1464cf7a Mon Sep 17 00:00:00 2001 From: Yari Polla Date: Fri, 10 Jun 2022 03:10:35 +0200 Subject: [PATCH] homescreen: optimise flick container --- .../package/contents/ui/FlickContainer.qml | 38 +++---------------- 1 file changed, 5 insertions(+), 33 deletions(-) diff --git a/containments/homescreens/default/package/contents/ui/FlickContainer.qml b/containments/homescreens/default/package/contents/ui/FlickContainer.qml index 24dc526f..4630b538 100644 --- a/containments/homescreens/default/package/contents/ui/FlickContainer.qml +++ b/containments/homescreens/default/package/contents/ui/FlickContainer.qml @@ -26,37 +26,15 @@ Flickable { readonly property real startContentX: contentWidth / 2 readonly property real startContentY: contentHeight / 2 - - property bool positionChangedDueToFlickable: false - - // ensure that flickable is not moving when other sources are changing position - Connections { - target: root.homeScreenState - - onXPositionChanged: { - if (!root.positionChangedDueToFlickable) { - root.cancelMovement(); - } - root.positionChangedDueToFlickable = true; - } - onYPositionChanged: { - if (!root.positionChangedDueToFlickable) { - root.cancelMovement(); - } - root.positionChangedDueToFlickable = true; - } - } - + // update position from flickable movement property real oldContentX property real oldContentY onContentXChanged: { - positionChangedDueToFlickable = true; homeScreenState.updatePositionWithOffset(contentX - oldContentX, 0); oldContentX = contentX; } onContentYChanged: { - positionChangedDueToFlickable = true; homeScreenState.updatePositionWithOffset(0, -(contentY - oldContentY)); oldContentY = contentY; } @@ -75,11 +53,13 @@ Flickable { onDragStarted: homeScreenState.cancelEditModeForItemsRequested() onDragEnded: homeScreenState.cancelEditModeForItemsRequested() - onFlickStarted: homeScreenState.cancelEditModeForItemsRequested() + onFlickStarted: { + homeScreenState.cancelEditModeForItemsRequested(); + root.cancelFlick(); + } onDraggingChanged: { if (!dragging) { - cancelMovement(); resetPosition(); if (!homeScreenState.animationsRunning) { homeScreenState.updateState(); @@ -89,15 +69,7 @@ Flickable { } } - function cancelMovement() { - root.cancelFlick(); - - // HACK: cancelFlick() doesn't seem to cancel flicks... - root.flick(-horizontalVelocity, -verticalVelocity); - } - function resetPosition() { - positionChangedDueToFlickable = true; oldContentX = startContentX; contentX = startContentX; oldContentY = startContentY;