T26a Media: images

A new chapter, src/media. ImageViewer fits a picture to its stage and
zooms by the document steps, by keys, buttons and Cmd-scroll about the
pointer; a drag through gpui's drag, a scroll or the arrows pan it once it
overhangs; R turns it a quarter at a time. gpui paints pictures without a
transform, so media::turn turns the decoded frames off the main thread,
an asset keyed by the picture and the turn; `image` 0.25, which gpui
already decodes with, is now a dependency. ImageThumbnail shows a picture
in its own shape with a corner label and a ring when chosen, and is a Tab
stop only with a handler. Lightbox / Gallery Viewer points to
overlays::Lightbox, which the gallery opens from the thumbnails.

T26 splits into T26a–e. AGENTS.md: the drag rule says drags that pan,
turn or slide go through gpui's drag; pictures turn by their pixels.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ZacharyZhang-NYandClaude Opus 5.5 committed 2026-09-26 15:34:45 -04:00
1 parent 4678773383
commit f8a51a5352
14 files changed
+1171 -7

No files matched your search

+5 -1
View File
@@ -89,7 +89,11 @@ Per-component lines live in `tasks/`. Tags there:
- [x] T25d Generative · Sound and motion
- [x] T25e Generative · Models
- [x] T25f Generative · Data and prompts
- [ ] T26 Media
- [ ] T26a Media · Images
- [ ] T26b Media · Crop and annotate
- [ ] T26c Media · Video
- [ ] T26d Media · Audio and controls
- [ ] T26e Media · Capture and devices
- [ ] T27 Files
- [ ] T28 Messaging
- [ ] T29 Mail