A property driven by an expression showed its value in the ordinary blue;
After Effects shows it red (refs #1072). Tokens::for_value(expression)
gives the value fields the expression colour (expr_text, dark and light)
for both hot_text and accent_hover, so a hovered or dragged value stays
red. The Timeline's value_editor, Effect Controls' parameter rows and the
Properties panel's transform rows pass these value tokens to their
number and angle fields (and the Timeline's vector separator and plain
enum number), from Property::has_expression() every frame: a disabled,
removed or empty expression is blue again. Names, stopwatches, keyframe
buttons, link icons and dropdowns keep the ordinary tokens. Red means an
expression drives the value, not that it evaluated; errors keep their
own reporting.
Tests (ui_expression_values, reading the painted text colour): a vector
(Position, with its separator), an angle (Rotation, both parts) and a
scalar (Opacity), on the layer and on the Transform effect, are red in
all three panels, in dark and light themes, and Scale (no expression)
stays blue; disabled, removed and whitespace-only expressions are blue
and enabling again is red; a hovered expression value stays red while a
hovered ordinary one takes the hover accent. All three fail without this
change. ui_effect_controls and ui_inline_edit still pass.
- Keyboard Shortcuts: Enter is not Delete while the delete confirmation is open (#1113 with #1019).
- Speed graph drag test compares proportions, since the Graph Editor now fits its selection (#1182 with #1109).
- Spanish panel test no longer demands the Chinese catalogs' exact rows (#996 with #1189, #1019).
- Object Matte gets its Simplified Chinese effect-name row (#1199 with #792).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Cryptomatte (#1183): planes shorter than the image read as empty instead of panicking.
- layer.addMarker (#1180): a comp marker no longer replaces one at the same time.
- Desktop (#1005): ignore macOS's -psn_ argument instead of refusing to launch.
- Doc comments put back on their own items (#1153, #1037).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The six PSD PRs merged one by one leave #1131's test calling samples()/to_rgb(), which #1139
replaced; vangel76's integration draft #1149 has the adapted version.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The nightly FreeBSD run measured 119 ms/frame against a 100 ms limit: the mean included
Tracker::new and any scheduling stalls on the two-core VM. The best single step with a
250 ms bound still catches an order-of-magnitude regression.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>