diff options
| author | cashmere <cashmere@autistici.org> | 2026-03-29 07:06:09 +0200 |
|---|---|---|
| committer | cashmere <cashmere@autistici.org> | 2026-03-29 07:06:09 +0200 |
| commit | c6e4967b52eacb13360e649cddbaf9afcd6213dc (patch) | |
| tree | da25101832ecafe8caf624c44329ab12c222b230 /tests/test-kitty-gfx.org | |
| parent | e5ee5bb0e498c66b473e7eecc8c31e29f503d85c (diff) | |
| download | kitty-graphics-c6e4967b52eacb13360e649cddbaf9afcd6213dc.tar.gz | |
feat: nuke-and-repaint for fold/unfold heading cleanup
Add heading-aware org-cycle handling:
- kitty-gfx--nuke-headings: erases ALL heading multicell blocks
in the current buffer, clearing their cached positions. This
is the "nuke" phase — a clean slate for the terminal.
- kitty-gfx--on-org-cycle: now handles both image and heading
overlays. Images get their placements deleted (existing logic),
headings get their multicell blocks erased (nuke phase).
The subsequent scheduled refresh is the "repaint" phase:
kitty-gfx--overlay-screen-pos checks in-folded-region-p, so
folded headings return nil and won't be re-emitted, while
visible headings get fresh OSC 66 emission at correct positions.
The nuke-and-repaint strategy avoids incremental erase complexity
(which failed in two prior prototypes) by simply erasing everything
and letting the refresh cycle figure out what's still visible.
Diffstat (limited to 'tests/test-kitty-gfx.org')
0 files changed, 0 insertions, 0 deletions
