From 1dd1cd05ea6eb5c497f40cf224a16259b2564394 Mon Sep 17 00:00:00 2001 From: zhangkun Date: Thu, 15 Aug 2024 10:52:04 +0800 Subject: [PATCH] fix: incorrect animation application when dragging At the beginning of dragging, do not execute animation Issue: linuxdeepin/developer-center#10330 --- panels/dock/tray/package/TrayContainer.qml | 22 +++++++++++++++++-- .../dock/tray/package/TrayItemPositioner.qml | 21 ++++++++++++++++-- 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/panels/dock/tray/package/TrayContainer.qml b/panels/dock/tray/package/TrayContainer.qml index 97880da2a..37220d116 100644 --- a/panels/dock/tray/package/TrayContainer.qml +++ b/panels/dock/tray/package/TrayContainer.qml @@ -85,21 +85,39 @@ Item { property int trayHeight: 50 property size containerSize: DDT.TrayItemPositionManager.visualSize + property bool isDragging: DDT.TraySortOrderModel.actionsAlwaysVisible + property bool animationEnable: true // visiualIndex default value is -1 property int dropHoverIndex: -1 required property var surfaceAcceptor + onIsDraggingChanged: { + animationEnable = !isDragging + animationEnableTimer.start() + } + + Timer { + id: animationEnableTimer + interval: 10 + repeat: false + onTriggered: { + animationEnable = true + } + } + implicitWidth: width width: containerSize.width implicitHeight: height height: containerSize.height Behavior on width { - NumberAnimation { duration: 200; easing.type: collapsed ? Easing.OutQuad : Easing.InQuad } + enabled: animationEnable + NumberAnimation { duration: 200; easing.type: collapsed || !DDT.TraySortOrderModel.isCollapsing ? Easing.OutQuad : Easing.InQuad } } Behavior on height { - NumberAnimation { duration: 200; easing.type: collapsed ? Easing.OutQuad : Easing.InQuad } + enabled: animationEnable + NumberAnimation { duration: 200; easing.type: collapsed || !DDT.TraySortOrderModel.isCollapsing ? Easing.OutQuad : Easing.InQuad } } // Delegates diff --git a/panels/dock/tray/package/TrayItemPositioner.qml b/panels/dock/tray/package/TrayItemPositioner.qml index a2b8f8876..d067c6868 100644 --- a/panels/dock/tray/package/TrayItemPositioner.qml +++ b/panels/dock/tray/package/TrayItemPositioner.qml @@ -15,6 +15,23 @@ Control { property size visualSize: Qt.size(0, 0) property point visualPosition: DDT.TrayItemPositionRegister.visualPosition + property bool isDragging: DDT.TraySortOrderModel.actionsAlwaysVisible + property bool animationEnable: true + + onIsDraggingChanged: { + animationEnable = !isDragging + animationEnableTimer.start() + } + + Timer { + id: animationEnableTimer + interval: 10 + repeat: false + onTriggered: { + animationEnable = true + } + } + DDT.TrayItemPositionRegister.visualIndex: (model.sectionType !== "stashed") ? model.visualIndex : -1 DDT.TrayItemPositionRegister.visualSize: (model.sectionType !== "stashed") ? Qt.size(width, height) : Qt.size(0, 0) DDT.TrayItemPositionRegister.surfaceId: model.surfaceId @@ -26,11 +43,11 @@ Control { x: visualPosition.x y: visualPosition.y Behavior on x { - enabled: isHorizontal + enabled: isHorizontal && animationEnable NumberAnimation { duration: 200; easing.type: collapsed || !DDT.TraySortOrderModel.isCollapsing ? Easing.OutQuad : Easing.InQuad } } Behavior on y { - enabled: !isHorizontal + enabled: !isHorizontal && animationEnable NumberAnimation { duration: 200; easing.type: collapsed || !DDT.TraySortOrderModel.isCollapsing ? Easing.OutQuad : Easing.InQuad } } states: [