diff --git a/containments/panel/package/contents/ui/SlidingPanel.qml b/containments/panel/package/contents/ui/SlidingPanel.qml index 9f97bccf..fbda17b6 100644 --- a/containments/panel/package/contents/ui/SlidingPanel.qml +++ b/containments/panel/package/contents/ui/SlidingPanel.qml @@ -52,14 +52,21 @@ NanoShell.FullScreenOverlay { } property int direction: SlidingPanel.MovementDirection.None + function cancelAnimations() { + closeAnim.stop(); + openAnim.stop(); + } function open() { + cancelAnimations(); window.showFullScreen(); openAnim.restart(); } function close() { + cancelAnimations(); closeAnim.restart(); } function updateState() { + cancelAnimations(); if (window.direction === SlidingPanel.MovementDirection.None) { if (offset < openThreshold) { close(); @@ -194,7 +201,10 @@ NanoShell.FullScreenOverlay { contentWidth: window.width contentHeight: window.height*2 bottomMargin: window.height - onMovementStarted: window.userInteracting = true; + onMovementStarted: { + window.cancelAnimations(); + window.userInteracting = true; + } onFlickStarted: window.userInteracting = true; onMovementEnded: { window.userInteracting = false; diff --git a/containments/panel/package/contents/ui/main.qml b/containments/panel/package/contents/ui/main.qml index 5003f5ab..d68aba6b 100644 --- a/containments/panel/package/contents/ui/main.qml +++ b/containments/panel/package/contents/ui/main.qml @@ -265,6 +265,7 @@ Item { anchors.fill: parent onPressed: { + slidingPanel.cancelAnimations(); slidingPanel.drawerX = Math.min(Math.max(0, mouse.x - slidingPanel.drawerWidth/2), slidingPanel.width - slidingPanel.drawerWidth) slidingPanel.userInteracting = true; oldMouseY = mouse.y;