commit 6f5fb8048948fbf4a485decac7561b64ef68ea07
parent cd31a3a748aa27798dc5f006b32c80811769a385
Author: Michael Camilleri <[email protected]>
Date: Wed, 18 Feb 2026 03:46:08 +0900
Improve drag-and-drop reordering feel
Co-Authored-By: Claude 4.6 Opus <[email protected]>
Diffstat:
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/Listless/Views/TaskListView.swift b/Listless/Views/TaskListView.swift
@@ -57,10 +57,10 @@ struct TaskListView: View {
onStartEdit: { startEditing($0) },
onEndEdit: { endEditing($0, shouldCreateNewTask: $1) }
)
- .scaleEffect(draggedTaskID == taskID ? 1.03 : 1.0)
+ .scaleEffect(draggedTaskID == taskID ? 1.05 : 1.0)
.shadow(
- color: draggedTaskID == taskID ? .black.opacity(0.15) : .clear,
- radius: 8, y: 2
+ color: draggedTaskID == taskID ? .black.opacity(0.3) : .clear,
+ radius: 12, y: 4
)
.zIndex(draggedTaskID == taskID ? 1 : 0)
.taskDragGesture(
diff --git a/ListlessiOS/Helpers/TaskRowDragGesture.swift b/ListlessiOS/Helpers/TaskRowDragGesture.swift
@@ -34,11 +34,11 @@ struct TaskRowDragGesture: ViewModifier {
.onChanged { value in
switch value {
case .second(true, let drag):
+ // Fire onDragStart as soon as the long press completes so the
+ // row lifts visually before any finger movement. onDragStart is
+ // idempotent (guarded in TaskListView).
+ onDragStart()
if let drag {
- // onDragStart is idempotent (guarded in TaskListView);
- // wait for a real drag value so the overlay has a valid
- // position from the very first frame.
- onDragStart()
onDragChanged(drag.location)
}
default: