mirror of
https://github.com/storytold/gridcraft.git
synced 2026-11-03 17:16:14 -06:00
python.set, and Replace in a Python cell's code, removed the cell's spill registration and its spilled values before the recalculation ran, so the recalculation never saw the freed range and formulas reading those cells kept their old values until a full recalculation. The commands now leave the spill to the recalculation. When a Python cell's content changes and it has no array result to lay out, cells_changed removes the spill and queues the freed range, as it does for a formula replaced by a constant, so its readers are recalculated; a cell that keeps its array result (the same code again) keeps its spill and lays it out again. Clearing, pasting over and blocking a Python spill already recalculated its readers, and undo and redo restore the values along with the cells; a test covers them.