Commit Graph

5 Commits

Author SHA1 Message Date
Mortdecai 046ff03f8b fix(composite): async image decode, skip dead pager, prevent UI freeze
- Decode images in background goroutine, not in Draw()
- Show [loading image...] placeholder until decode completes
- Skip pv.term.Draw() when composite is active (pager got no input)
- Thread-safe access to decoded image cache via sync.Mutex
- Invalidate callback triggers redraw when images finish decoding
2026-04-07 21:11:44 -04:00
Mortdecai 20161fedeb feat(msgviewer): re-enable composite renderer with scroll support and inline images
Composite mode now handles j/k/g/G/PgUp/PgDown/mouse wheel for scrolling.
Text uses the configured default style. Images render inline via Vaxis.
Emails without images still use the standard pager path.
2026-04-07 21:04:27 -04:00
Mortdecai 9fd718b2ae fix(msgviewer): use pager for all text, replace image markers with readable placeholders
The composite renderer bypassed the pager (less) for any email with images,
losing colors, scrolling, and search. Now always forward to the pager with
[image: alt] text placeholders. Image refs are still extracted and stored
for future inline rendering.
2026-04-07 20:58:45 -04:00
Mortdecai b13bd1d71c feat(msgviewer): wire image extraction and composite rendering into PartViewer
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 20:10:45 -04:00
Mortdecai 083402a548 init: pristine aerc 0.20.0 source 2026-04-07 19:54:54 -04:00