# fix\(web\): move the grid origin only together with a full repaint · stienswout/t3code

[View on GitCafe](https://git.cafe/stienswout/t3code/commit/e6109923edfc0d106b5f7fb42555d9f5f71f4d2e)

Repository: [stienswout/t3code](https://git.cafe/stienswout/t3code)

Visibility: public

Requested revision: e6109923edfc0d106b5f7fb42555d9f5f71f4d2e

Requested commit: e6109923edfc0d106b5f7fb42555d9f5f71f4d2e

Commit: e6109923edfc0d106b5f7fb42555d9f5f71f4d2e

Tree: a90c54265fc5dccac3148b61dccce752fc109da9

Author: Wout Stiens

Committer: Wout Stiens

## Message

```
fix(web): move the grid origin only together with a full repaint

The bottom-anchored origin was recomputed from the live mount height at
render time, but an animation-frame render can run before the same
frame's ResizeObserver fit. A partial dirty-row redraw could therefore
composite rows at a shifted origin over rows painted at the previous
one, leaving interleaved stale fragments — visible when shell history
recall rewrote wrapped prompt lines during or after a resize. The
origin is now cached and only updated inside fit(), where any change
forces the full repaint that keeps every consumer consistent.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

```

## Parents

- [7997cd16e5aa62f167d571d7da458b7fbfed3e83](https://git.cafe/stienswout/t3code/commit/7997cd16e5aa62f167d571d7da458b7fbfed3e83?format=markdown)

[Source at this commit](https://git.cafe/stienswout/t3code/tree/e6109923edfc0d106b5f7fb42555d9f5f71f4d2e?format=markdown)
