From c6b9bd080a6a50118278e5a631e23ffc2aaf1fc9 Mon Sep 17 00:00:00 2001 From: reugenio Date: Sun, 28 Dec 2025 02:19:49 +0100 Subject: [PATCH] feat(advanced_table): Ctrl+N inserts row BELOW current - Insert at selected_row + 1 instead of at selected_row - Use startInjectedEdit() for proper injection tracking - Row appears below cursor, more intuitive UX --- src/widgets/advanced_table/advanced_table.zig | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/widgets/advanced_table/advanced_table.zig b/src/widgets/advanced_table/advanced_table.zig index 925cb3b..22c08d4 100644 --- a/src/widgets/advanced_table/advanced_table.zig +++ b/src/widgets/advanced_table/advanced_table.zig @@ -799,16 +799,16 @@ fn handleKeyboard( // Operaciones CRUD (Ctrl+N, Ctrl+Delete, Ctrl+B desde el Core) // ========================================================================= if (config.allow_row_operations) { - // Ctrl+N: Insert row + // Ctrl+N: Insert row BELOW current row (inyección local) if (events.insert_row) { const insert_idx: usize = if (table_state.selected_row >= 0) - @intCast(table_state.selected_row) + @as(usize, @intCast(table_state.selected_row)) + 1 // +1 = debajo else 0; if (table_state.insertRow(insert_idx)) |new_idx| { table_state.selectCell(new_idx, 0); - // Inicializar buffer de edición para la nueva fila (Excel-style) - table_state.row_edit_buffer.startEdit(table_core.NEW_ROW_ID, new_idx, true); + // Inicializar buffer para fila inyectada (Excel-style) + table_state.row_edit_buffer.startInjectedEdit(new_idx); result.row_inserted = true; result.selection_changed = true; } else |_| {}