From 30eefb527937e071020251e1c944dcb484c6c322 Mon Sep 17 00:00:00 2001 From: geemili Date: Sun, 21 Apr 2024 11:40:13 -0600 Subject: [PATCH] fix: remove extra snapshots when double clicking a card --- src/main.zig | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main.zig b/src/main.zig index 57d403b..1fab391 100644 --- a/src/main.zig +++ b/src/main.zig @@ -475,9 +475,13 @@ pub fn doSelectOrPlace(pressed: bool) !void { } } - try history.append(gpa, snapshot); + if (cards_moved) { + try history.append(gpa, snapshot); + } + selected_deck = null; } else { + var cards_moved = false; const snapshot = try Snapshot.initFromCurrentGlobalState(); if (selected_deck) |selected| move_from_selected_to_hovered: { const selected_substack = selected.items[selected_card..]; @@ -492,7 +496,7 @@ pub fn doSelectOrPlace(pressed: bool) !void { hovered.appendSliceAssumeCapacity(selected_substack); selected.shrinkRetainingCapacity(selected.items.len - selected_substack.len); hovered_card = indexOfTopOfStack(hovered_deck.?.items); - try history.append(gpa, snapshot); + cards_moved = true; break :move_from_selected_to_hovered; } @@ -513,7 +517,7 @@ pub fn doSelectOrPlace(pressed: bool) !void { foundation.ensureUnusedCapacity(gpa, 1) catch continue; foundation.appendAssumeCapacity(selected_deck.?.pop()); hovered_card = indexOfTopOfStack(hovered_deck.?.items); - try history.append(gpa, snapshot); + cards_moved = true; break :move_from_selected_to_hovered; } } @@ -533,6 +537,9 @@ pub fn doSelectOrPlace(pressed: bool) !void { hovered_card = indexOfTopOfStack(hovered_deck.?.items); try history.append(gpa, snapshot); } + if (cards_moved) { + try history.append(gpa, snapshot); + } selected_deck = null; } }