The panel laid out a row (with its thumbnail and several whole-document lookups) for every open row each frame. A layer of 5,000 groups of 10 paths, all open, took about 29 s a frame headless. Now the rows shown are listed once per document change (with their layer colour and dimming worked out on the way down) and ScrollArea::show_rows lays out only those in view: 0.4 ms a frame. A row highlighted out of view is scrolled to. The open rows move from UI state into the document's state (DocState::layers_open, OpenRows): a document opens with only its top-level layers open, and native files save the open rows (Document::layers_open, written only when not the default, at save time like the view, so opening or closing rows never marks the document modified). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| src | ||
| tests | ||
| Cargo.toml | ||