Keep the first-selected cell marked as active during a multi-cell selection

The active cell (bold border/handle, formula bar target) used to track
selection.focus, so it followed the mouse/cursor while dragging or
shift-extending a range. Switch it to selection.anchor -- the first cell of
the current selection action -- so it stays put while the range grows,
matching Excel/Numbers. Tab/Enter data-entry flow already keeps anchor ==
focus while it moves the cursor, so that behaviour is unaffected.

- document.ts: activeCell/activeCellName/activeCellInput read the anchor.
- FormulaBar.vue: commits to the anchor cell to match what it displays.
- TableGrid.vue: isActive() (border + handle) and F2/type-to-edit target
  the anchor; Home/End keep using the cursor's row via s.focus.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
wkh
2026-09-02 09:59:29 +02:00
co-authored by Claude Sonnet 5
parent 44f3314137
commit e45cdfd077
4 changed files with 18 additions and 9 deletions
+1 -1
View File
@@ -17,7 +17,7 @@ watch(
function commit() {
const sel = store.doc.selection;
if (sel) store.setCellInput(sel.tableId, sel.focus.col, sel.focus.row, draft.value);
if (sel) store.setCellInput(sel.tableId, sel.anchor.col, sel.anchor.row, draft.value);
}
function onEnter() {
commit();