Two related fixes for stale glyphs / visual artifacts while dragging a gutter: - Gutter.tsx: pointermove now writes the new ratio into a ref and schedules a single requestAnimationFrame flush per frame. Without this, setTree fires 60+ times per second during a drag and React + ResizeObserver + xterm's DOM renderer get out of sync. The pointerup handler flushes any pending ratio so the final position always lands. - XtermPane.tsx: the ResizeObserver callback now also rAF-coalesces AND calls term.refresh(0, term.rows - 1) after fit.fit(). xterm's DOM renderer doesn't reliably repaint freed-up rows after a shrink, so the explicit refresh wipes any stale glyphs. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| Gutter.css | ||
| Gutter.tsx | ||
| LeafPane.css | ||
| LeafPane.tsx | ||
| orchestration.tsx | ||
| tree.test.ts | ||
| tree.ts | ||