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:
@@ -135,7 +135,9 @@ describe('seed document acceptance (canvas model)', () => {
|
||||
s.setSelection({ tableId: umsatz, anchor: { col: 1, row: 1 }, focus: { col: 1, row: 5 } });
|
||||
expect(s.selectionAggregate.value.sum).toBe(6175);
|
||||
expect(s.selectionAggregate.value.count).toBe(5);
|
||||
expect(s.activeCellName.value).toBe(`Umsatz::${toA1(1, 5)}`);
|
||||
// the active cell is the anchor -- the first cell of the selection -- not
|
||||
// wherever the selection was extended to.
|
||||
expect(s.activeCellName.value).toBe(`Umsatz::${toA1(1, 1)}`);
|
||||
});
|
||||
|
||||
it('recalculation visits precedents before dependents across tables', () => {
|
||||
|
||||
Reference in New Issue
Block a user