notification: fix action invoke when animations are disabled

This commit is contained in:
yuzujr
2026-02-16 17:05:44 +08:00
parent 1dc00a1373
commit fac91ecbfc
+22 -10
View File
@@ -402,9 +402,7 @@ Variants {
return a.identifier === "default"; return a.identifier === "default";
}); });
if (hasDefault) { if (hasDefault) {
card.animateOut(); card.runDeferredAction("default", false);
deferredActionTimer.actionId = "default";
deferredActionTimer.start();
} }
} }
onCanceled: { onCanceled: {
@@ -493,6 +491,25 @@ Variants {
} }
} }
function runDeferredAction(actionId, isHistoryRemoval) {
if (Style.animationSlow <= 0) {
if (isHistoryRemoval) {
NotificationService.removeFromHistory(notificationId);
} else {
NotificationService.invokeAction(notificationId, actionId);
}
card.animateOut();
return;
}
deferredActionTimer.stop();
deferredActionTimer.actionId = actionId || "";
deferredActionTimer.isHistoryRemoval = isHistoryRemoval;
deferredActionTimer.interval = Math.min(50, Math.max(1, Style.animationSlow - 1));
card.animateOut();
deferredActionTimer.start();
}
Timer { Timer {
id: removalTimer id: removalTimer
interval: Style.animationSlow interval: Style.animationSlow
@@ -699,10 +716,7 @@ Variants {
outlined: false outlined: false
implicitHeight: 24 implicitHeight: 24
onClicked: { onClicked: {
card.animateOut(); card.runDeferredAction(actionData.identifier, false);
deferredActionTimer.actionId = actionData.identifier;
deferredActionTimer.isHistoryRemoval = false;
deferredActionTimer.start();
} }
} }
} }
@@ -723,9 +737,7 @@ Variants {
anchors.rightMargin: Style.marginM anchors.rightMargin: Style.marginM
onClicked: { onClicked: {
card.animateOut(); card.runDeferredAction("", true);
deferredActionTimer.isHistoryRemoval = true;
deferredActionTimer.start();
} }
} }