Commit Graph
2196 Commits
Author SHA1 Message Date
Marco Arnulfo d32c57b093 Project: a new folder opens with its name ready to type (fixes #1658) 2026-10-16 16:26:32 +02:00
Marco Arnulfo ad4ed3981e Lumetri: hue/saturation curves stay inside their box beside a close point (fixes #1656) 2026-10-16 16:08:18 +02:00
detthandClaude Sonnet 5.5 2823abc40c fix(engine): report the keys keys.delete removed, not the keys selected
keys.delete returned the number of selected keys even when some of them
no longer existed, so a delete that removed nothing still reported success.
It now returns the number of keys actually removed, and a key that is gone
or listed twice is not counted.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JaA7tHy731qtvscjulrcfz
2026-10-16 13:55:29 +00:00
Hamza 0c39995d0f Convert a shape layer's parametric path to a bezier path (#932)
`path.convertToBezier` only cleared `roto_bezier` on mask groups, so on a shape
layer it did nothing at all: a Rectangle, Ellipse or Polystar path stayed
parametric and its vertices could not be edited or animated. In After Effects
the command replaces such a path with an editable Path 1 of the same geometry.

The geometry is not re-derived. `parametric_path` calls the same
`effectcraft_path::{rect, ellipse, polystar}` functions `render::shapes::collect`
calls, with the same defaults for a property a group doesn't carry, so the path
that comes out is the shape that was on screen; `from_kurbo` and
`build::shape_path` then make an ordinary Path 1.

Masks are unchanged: shape items take precedence when selected, and with none
selected the command falls through to the old mask behaviour. Path Direction is
carried over rather than reset, since reversing a path is a separate command,
and the new path is left selected so its vertices can be edited straight away.

The parametric properties are read at the current time and the result is a
static path: a Size or Roundness animation cannot survive becoming a vertex
list, in After Effects either. Undo restores the parametric shape.
2026-10-16 18:13:08 +05:00
Marco Arnulfo 34f1ebfe55 Masks: the arrow keys nudge the selected points (part of #1288) 2026-10-16 14:42:03 +02:00
krinry f13429010f #1582, #1585: guard web serviceWorker against SecurityError in opaque contexts
In sandboxed iframes without allow-same-origin (or other opaque origin contexts), accessing `navigator.serviceWorker` throws a SecurityError synchronously.

- Guard `info().serviceWorker` evaluation with try/catch to return `false` on SecurityError (#1585)
- Guard PWA serviceWorker registration with try/catch to let the web app load rather than hanging (#1582)
- Add contributor credit entry for @krinry in `contributors/people.toml`
2026-10-16 18:09:38 +05:30
Gert Pellin 0bdf9ec5e3 Merge branch 'main' into expr-property-group-1619 2026-10-16 14:28:34 +02:00
BFlat 8f02f52a44 Merge pull request #1478 from midasmatterhorn/fix/cff-endchar-width-polarity
pdf: endchar takes its width by operand parity like the stems and rmoveto
2026-10-16 19:05:24 +07:00
BFlat d676de9ba4 Merge pull request #1565 from midasmatterhorn/fix/r4-smask-bpc-shift
pdf: a soft mask at an unsupported bit depth is ignored, not fatal
2026-10-16 19:05:12 +07:00
BFlat b9fddd3204 Merge pull request #1640 from krinry/fix/1611-layer-styles-context-menu
#1611: layer context menu has Layer Styles
2026-10-16 19:05:00 +07:00
bflatastic 9bdf05f34b Merge main into #1478; keep both sides of crates/pdf/src/cff.rs 2026-10-16 19:04:43 +07:00
bflatastic e37eec904d Merge main into #1565; keep both sides of crates/pdf/src/tests_import.rs 2026-10-16 19:04:34 +07:00
bflatastic 82784f69ea Merge main into #1640; keep both sides of docs/ui-parity.md 2026-10-16 19:04:25 +07:00
BFlat 901d54c55f Merge pull request #1594 from rahal/fix/script-host-files
fix(web): scripts can open files in browser storage; stored footage isn't reported missing (#1593)
2026-10-16 19:04:06 +07:00
BFlat 457b0e3c7a Merge pull request #1647 from storytold/fix/script-access-windows-prefix
Scripts: the project-folder check compares Windows paths in one form
2026-10-16 19:03:55 +07:00
BFlat 5ab0420e67 Merge pull request #1394 from marcoarnulfo/fix/expression-completion-call-parens
Expressions: accepting a function completion inserts the call parentheses
2026-10-16 19:03:44 +07:00
BFlat 3e2793af49 Merge pull request #1318 from DWAA1660/fix/1250-mask-tangent-lengths
Masks: addVertex and setVertex fill in missing tangents of a loaded path (#1250)
2026-10-16 19:03:32 +07:00
BFlat 3b58b117d1 Merge pull request #1470 from Ni-zav/fix/1361-offset-path-miter-lottie-s20261014T2309JKT
fix(lottie): serialize Offset Paths miter limits as animatable values
2026-10-16 19:03:21 +07:00
BFlat 16c6180d91 Merge pull request #1391 from sanyamsingh001/fix/cli-render-empty-r49
Honor --empty when rendering from the CLI
2026-10-16 19:03:09 +07:00
BFlat 67f3a0513c Merge pull request #1313 from sanyamsingh001/fix/cli-input-preservation-r48
Preserve CLI template inputs when output is a hard link
2026-10-16 19:02:58 +07:00
BFlat 5219fa549b Merge pull request #1321 from sanyamsingh001/fix/time-to-frames-duration-r48
Honor duration rounding in timeToFrames
2026-10-16 19:02:47 +07:00
BFlat 64f59c7dc7 Merge pull request #1285 from zitann2020/i18n/ja-effect-names
i18n(ja): the first rows of the Japanese effect catalog
2026-10-16 19:02:36 +07:00
BFlat fa5eff7210 Merge pull request #1332 from Themolx/null-visibility-switch
Null layers: the Video switch hides them in the Composition viewer, as in After Effects
2026-10-16 19:02:24 +07:00
BFlat 1bf383a799 Merge pull request #1628 from marcoarnulfo/fix/speed-graph-fit-selection
fix(graph): speed graph Fit Selection frames the curve between the keys
2026-10-16 19:02:13 +07:00
BFlat 908c946fc1 Merge pull request #1538 from guillehr2/black-white-artifacts-1463
Effects: Black & White no longer turns faint colour noise in shadows into blocks
2026-10-16 19:02:00 +07:00
BFlat 88014aceb7 Merge pull request #1292 from vbasky/fix/1195-particle-mblur
CC Particle World: motion blur (#1195)
2026-10-16 19:01:49 +07:00
BFlat c6f6f9b373 Merge pull request #1511 from MatejKozlovsky/fallback-parallel
Export: render in parallel once the GPU stops for good
2026-10-16 19:01:38 +07:00
BFlat 5bb76bf50c Merge pull request #1561 from AyberkA0/pen-shift-45
fix(viewer): Shift-click with the Pen draws a straight segment (#1544)
2026-10-16 19:01:27 +07:00
BFlat 8e96fdd0fc Merge pull request #1351 from DWAA1660/fix/1246-script-confirmed-flag
Scripts: a script can't confirm executing a file for itself (#1246)
2026-10-16 19:01:15 +07:00
BFlat e483a1c89c Merge pull request #1512 from vangel76/gap-timeline-effect-label
#1509: Timeline effect rows show the effect's colour label
2026-10-16 19:01:04 +07:00
BFlat 90e68eb6ab Merge pull request #1524 from MatejKozlovsky/require-gpu-tests
GPU tests: say why the GPU didn't start, and fail with EFFECTCRAFT_REQUIRE_GPU=1 instead of skipping
2026-10-16 19:00:52 +07:00
BFlat 23f1def7bc Merge pull request #1444 from wixar172/fix/stroke-miter-padding
Shapes: a stroke's buffer is padded by the miter limit only where it has miter joins
2026-10-16 19:00:41 +07:00
BFlat 7f46155bbd Merge pull request #1634 from marcoarnulfo/fix/window-menu-closes-panel
Window menu: choosing a checked panel closes it, as in After Effects
2026-10-16 19:00:29 +07:00
BFlat 5c02fe902f Merge pull request #1558 from AyberkA0/script-keys-closed-comp
fix(script): per-key methods act on keys outside the active comp (#1531)
2026-10-16 19:00:16 +07:00
BFlat ffab4627e4 Merge pull request #1372 from nanox333/fix/effect-drop-highlights-layer
Timeline: dragging an effect lights up the layer it will land on
2026-10-16 19:00:04 +07:00
BFlat c3cb658be1 Merge pull request #1432 from marcoarnulfo/fix/render-queue-failed-exit
CLI: a failed render under run/exec exits 1, like render --queue
2026-10-16 18:59:52 +07:00
bflatasticandClaude Opus 5.5 a8bbcd3aa2 Scripts: the browser-storage test runs where /browser paths are absolute
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 18:56:18 +07:00
bflatasticandClaude Opus 5.5 4d8f88302d Scripts: the project-folder check compares Windows paths in one form
normalize() canonicalizes whatever part of a path exists, which on Windows adds
the verbatim prefix to some paths and not others, so a file under a folder
that isn't on disk failed the project-folder check against an existing
project folder. The check failed closed (access refused); it now drops the
prefix from canonical drive paths so both sides compare.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 18:53:59 +07:00
bflatasticandClaude Opus 5.5 c0b505b41d Masks: deleting vertices fills in missing tangents first, like add and set (#1250)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 18:40:14 +07:00
bflatasticandClaude Opus 5.5 2cf08555a6 Lottie: rustfmt the Offset Paths test
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 18:39:25 +07:00
bflatasticandClaude Opus 5.5 1bcf1a9f61 Contributors: keep the people.toml entry that landed with #1608
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 18:39:16 +07:00
bflatasticandClaude Opus 5.5 0fbf4e887e pdf: leave the atomic-write test to its own PR
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 18:39:10 +07:00
bflatasticandClaude Opus 5.5 3725c321a6 CLI: drop a debug print from the --empty render test
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 18:39:06 +07:00
bflatasticandClaude Opus 5.5 ced1857637 Templates: the hard-link check covers every Unix, not only Linux
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 18:39:03 +07:00
bflatasticandClaude Opus 5.5 cc138fcb90 Expressions: timeToFrames keeps whole durations whole under float error
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 18:38:56 +07:00
bflatasticandClaude Opus 5.5 da23c9a650 i18n(ja): the effect catalog test guards Japanese as a partly filled table
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 18:38:08 +07:00
BFlat 19d19a339e Merge pull request #1482 from midasmatterhorn/fix/font-offset-overflow
pdf: checked_add for CFF Private DICT and Type 1 RD offsets from the file
2026-10-16 18:15:10 +07:00
BFlat 57ea7c7886 Merge pull request #1608 from marcoarnulfo/credits/marcoarnulfo
Contributors: add Marco Arnulfo
2026-10-16 18:14:59 +07:00
BFlat de8f25b2eb Merge pull request #1379 from DWAA1660/fix/1252-layer-cache-scene-deps
Layer cache: hash a selected layer's comp scene into its owner's key
2026-10-16 18:14:48 +07:00
bflatastic 3ec09f20d4 Merge remote-tracking branch 'origin/main' into pr-1482
# Conflicts:
#	crates/pdf/src/cff.rs
2026-10-16 18:14:31 +07:00