From 1f6e2b5c5a6795b8355b48b3f3ed38096618617b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9ophile=20Clet?= Date: Tue, 20 Aug 2024 12:24:40 +0200 Subject: [PATCH] fix preset disapearing if pushed away from displayed slot after a preset have been drag onto another --- code/tc.preset.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/code/tc.preset.js b/code/tc.preset.js index 92cc1df..4f1e74c 100644 --- a/code/tc.preset.js +++ b/code/tc.preset.js @@ -1204,12 +1204,17 @@ function ondrag(x,y,but,cmd,shift,capslock,option,ctrl) var offset = ((last_hovered <= drag_slot) && slots[last_hovered].name != null) ? 1 : 0; var offset_others = slots[last_hovered].name != null ? 1 : 0; var drag_slot_lock = slots[drag_slot].lock; + var recalc_rows_flag = 0 // If the slot we wan to drag is locked, we need to temporarily unlock it. if (drag_slot_lock) { lock(drag_slot, 0); } // If new slot is empty we just move the drag preset here. If it's not, we move al next slots to the right if (slots[last_hovered].name !== null) { + if (slots_highest == slots_count_display) { + // If there's a stored preset in the last displayed slot, it will be pushed to a new row at insert, so we need to add a new row at redraw + recalc_rows_flag = 1; + } to_pattrstorage("insert", last_hovered); } @@ -1243,9 +1248,14 @@ function ondrag(x,y,but,cmd,shift,capslock,option,ctrl) outlet(0, "drag", drag_slot, last_hovered, offset); is_dragging = 0; drag_slot = -1; - paint_base(); - select(last_hovered); + select(last_hovered); + + if (recalc_rows_flag) { + calc_rows_columns(); + } else { + paint_base(); + } trigger_writeagain();