* fix(ui-egui): craft_ui::ComboBox for every combo box, so open menus grow back (egui#5225)
Repins craft-libs to aiongg/craft-libs 60d60d48 (storytold main with the shared
dropdown) and bans egui::ComboBox in clippy.toml.
* fix(ui-egui): font menu under the font field is a craft_ui combo menu that grows back
The filter row is the menu's header and only the font list scrolls, so a search
that matched nothing grows the menu back when it is cleared.
* chore(deps): craft-libs 4d7b82f7 (dropdown fixes)
* chore(deps): craft-libs 92d392cf (#387 merged)
* chore(xtask): pdf-deps expects craft-libs 92d392cf
Reconcile main 991904888a and preserve the reviewed lifecycle, IME, rendering and lockfile changes.
Formatting, strict lint, layers, assets and WASM passed. Full CI retained 3,961 passes, 14 baseline-matching GPU failures and 31 ignored executions. The local review commit has explicit approval to retain these documented failures; native/browser acceptance and paired app performance remain open.
The panel catalog behind the menu bar translated the dialogs and
Preferences, but much of the work area was still English: panel tabs, form
fields, panel context menus, the tracker and graph controls, text-panel
options, the File panel's footers and the credits. Add 300 rows to the
Japanese catalog — and the matching Simplified and Traditional Chinese
sources the tests keep it in step with (the other languages may lag, an
untranslated row falls back to English):
- panel tabs (dock.rs / dock_ui.rs titles), the Project panel's columns,
footer tooltips and column menu;
- form and dialog labels and choice options (the forms the panels open —
import, interpret footage, render queue, trackers, text animators…);
- panel context menus (timeline layer/property menus, graph editor);
- the tracker, graph editor, text-panel, animator and Content-Aware Fill
labels;
- the Preview panel's transport tooltips, credits table headers and sort
options, the composition-settings tabs and the About links;
- the engine's text-animator menu labels, added as a data source like the
settings pages (they are interface text the panels draw).
Strings are wrapped where they are drawn with the existing `tr`/`tr_args`
mechanism (the label helpers already ask the catalog, so the data tables
need no new ids); the catalog tests keep the three complete languages
listing the same sources, reject duplicate or empty rows and keep the
placeholder counts. A new test assertion in
`japanese_rows_translate_the_panels` pins a sample of this step.
The panel catalogs are now 993 Japanese and 995 Chinese rows (the two
Chinese catalogs are the complete source list); with the 628-row menu
catalogs Japanese is 1,621 of ≈ 4,200 interface strings (39%, up from 27%).
Still English: effect parameter names (≈ 1,650 registry names, drawn from
the model, not the catalogs), Home-screen literals, tooltips drawn from
engine data, engine error messages, and the rows other languages lack.
Docs: localization-parity (header, per-language table, overall share,
revision history), ROADMAP (language table, progress log, revision history).
The attach point's 12 px grab area sat on top of the feature region and is tested first. Zoomed out, a default feature region is smaller than that on screen, so every press inside it moved the attach point instead of the point. Inside the feature region the attach point now grabs only the region's inner half.
Timeline switches and column headers, the viewer's tools and guides, the Project panel's menus,
tooltips and the layer, properties, graph, marker, tracker and camera-tracker panels now go through
`crate::i18n`.
- footage.check: background footage check after File > Open (Progress panel), not an undo step
- timeline: track-matte / parent menus built only while open (was O(n^2) per frame);
expression-row lookup per layer; panels hold Arc<Comp> snapshots instead of deep clones
- Project panel: virtualised vertical scrolling, selection reveal, thumbnails rendered off
the UI thread
- effectcraft-cli bench --ops (engine::perf + ui-egui::bench)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Tracker panel (Window > Tracker): Track Camera / Warp Stabilizer (disabled),
Track Motion / Stabilize Motion, Motion Source, Current Track, Track Type,
Position/Rotation/Scale, Motion Target with Edit Target..., Options...
(Motion Tracker Options dialog), Analyze (1 frame back, back, forward,
1 frame forward; stop while running) with progress, Reset and Apply (Apply
Dimensions dialog). Track point widgets in the viewer: feature and search
regions with corner handles, attach point crosshair and track path, all
draggable through track.setPoint (one undo step per drag). Automation ids for
every widget; headless UI test.
Tracker: featureless regions no longer drift (ties keep the prediction, only
confident matches predict motion). docs/agents.md: tracking example.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>