From 8f39bd38287ee0331705755b08daa02316d2e93b Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Thu, 30 Jul 2020 17:53:55 +0200 Subject: [PATCH] new close anim --- .../taskpanel/package/contents/ui/Task.qml | 4 +- .../package/contents/ui/TaskSwitcher.qml | 43 ++++++++++++++++--- 2 files changed, 40 insertions(+), 7 deletions(-) diff --git a/containments/taskpanel/package/contents/ui/Task.qml b/containments/taskpanel/package/contents/ui/Task.qml index 20e870b8..ed518cd8 100644 --- a/containments/taskpanel/package/contents/ui/Task.qml +++ b/containments/taskpanel/package/contents/ui/Task.qml @@ -132,8 +132,8 @@ Item { } onPressed: delegate.z = 10; onClicked: { - window.hide(); - window.setSingleActiveWindow(model.index); + //window.hide(); + window.setSingleActiveWindow(model.index, delegate); } onReleased: { delegate.z = 0; diff --git a/containments/taskpanel/package/contents/ui/TaskSwitcher.qml b/containments/taskpanel/package/contents/ui/TaskSwitcher.qml index a6913fbe..1a806b6b 100644 --- a/containments/taskpanel/package/contents/ui/TaskSwitcher.qml +++ b/containments/taskpanel/package/contents/ui/TaskSwitcher.qml @@ -78,7 +78,7 @@ NanoShell.FullScreenOverlay { scrollAnim.restart(); } - function setSingleActiveWindow(id) { + function setSingleActiveWindow(id, delegate) { if (id < 0) { return; } @@ -90,6 +90,8 @@ NanoShell.FullScreenOverlay { tasksModel.requestToggleMinimized(idx); } } + activateAnim.delegate = delegate; + activateAnim.restart(); } onOffsetChanged: tasksView.contentY = offset + grid.y @@ -116,10 +118,41 @@ NanoShell.FullScreenOverlay { } ScriptAction { script: { - if (tasksView.contentY <= 0 || tasksView.contentY >= tasksView.contentHeight - window.height) { - window.visible = false; - setSingleActiveWindow(currentTaskIndex); - } + window.visible = false; + } + } + } + + SequentialAnimation { + id: activateAnim + property Item delegate + ScriptAction { + script: { + activateAnim.delegate.z = 2; + } + } + ParallelAnimation { + OpacityAnimator { + target: window.contentItem + from: 1 + to: 0 + duration: units.longDuration + easing.type: Easing.InOutQuad + } + ScaleAnimator { + target: activateAnim.delegate + from: 1 + to: 2 + duration: units.longDuration + easing.type: Easing.InOutQuad + } + } + ScriptAction { + script: { + window.visible = false; + activateAnim.delegate.z = 0; + activateAnim.delegate.scale = 1; + window.contentItem.opacity = 1 } } }