Commit Graph
3605 Commits
Author SHA1 Message Date
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
midasmatterhorn 30e02b06ca project: output_size clamps the scale, not the sides, and every renderer uses it
Clamping each side on its own broke the aspect ratio (a 30000x15000 comp
at 4x came out 30000x30000). The effective scale min(s, MAX_SIZE/w,
MAX_SIZE/h) keeps both sides within the comp limit, and the export
pipeline and the locked-aspect width derivation render at that same
scale, so nothing requests a frame larger than output_size reports.
2026-10-16 14:46:24 +03: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
midasmatterhorn 912f828aa3 project: output_size never asks for sides past the comp limit
A 30 000 px comp (the repaired MAX_SIZE on load) at resolution 4.0
produced 120 000 px sides, which overflow u32 in the exporters'
w * h * 4 (debug panic, release wrap then slice panic) after already
requesting a ~57 GB frame. The resize path in the same file clamps to
30 000; output_size now does too.

Regression test: output_size_never_exceeds_the_comp_limit — on main it
returns (120000, 120000); with the clamp (30000, 30000), through both
RenderSettings and the OutputModule wrapper.
2026-10-16 14:37:14 +03:00
Egon 5000 b7ae660379 UI: a menu scrolls from its edge while browsing with the button held
Resting the pointer in an 18 pt band at a menu's bottom edge crawls the list after a short delay and speeds up the longer it stays there, so long menus stay reachable without letting go of the press-and-hold gesture. Context menus do not crawl.
2026-10-16 13:25:03 +02:00
Egon 5000 e6d5297a86 UI: the menu bar browses from the press until the release
A title opens on the press and the menus follow the cursor while the button is held: hovering a category opens its submenu and releasing over an entry picks it. An outside press or a focus loss closes the open menu again.
2026-10-16 13:22:42 +02:00
Vikram Bhaskaran f676bf0820 Keep the font rescan off the filter label and off the UI thread.
The 180 px font menu pinned Rescan Fonts over "Variable fonts only", and the click walked every fontconfig directory on the frame thread. The button is now its own row, and the scan runs on a background thread that the frame polls. The Linux face-count assert is left to the native-fonts gate.
2026-10-16 22:20:10 +11:00
Vikram Bhaskaran 7b3d3455cb UI: rescan system fonts from the font menu; Linux scan smoke test (#1089)
Fonts installed after EffectCraft launched (dnf, GNOME Font Viewer, a
drop into ~/.local/share/fonts) stayed invisible until restart: only the
startup background scan ran, and the report in #1089 could not tell
discovery gaps apart from a stale scan.

- The font menu's filter row gains a Rescan Fonts button (Character and
  Properties panels share the popup) that runs the existing
  text.fonts {rescan} command and reports the number added in the status
  line. The press doesn't flip the Variable-fonts filter (the button is
  above the row's click area and closes the popup on top of it).
- system_scan_finds_fonts now asserts, on a native fontconfig desktop
  (any machine with /etc/fonts, which includes the Fedora reporter's and
  the CI runner), that the scan lists installed families rather than
  silently returning only the bundled fonts: 870 faces in ~10 ms on an
  Arch box.

Tests: ui_font_search 4 passed (new rescan test drives the real popup);
effectcraft-text lib system scan green; fmt and clippy --all-targets -D
warnings clean. Translations for 'Rescan Fonts' in all six catalogs.
2026-10-16 22:20:10 +11: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
bflatastic 2dcceeea90 Merge remote-tracking branch 'origin/main' into pr-1608
# Conflicts:
#	contributors/people.toml
2026-10-16 18:14:23 +07:00
bflatastic f85f34c089 Merge remote-tracking branch 'origin/main' into pr-1379
# Conflicts:
#	crates/render/src/tests.rs
2026-10-16 18:14:14 +07:00
arnav-hiwarkarandClaude Opus 5.5 17edbbffff Preview: an edit keeps the cached frames outside the layers it changes (#1641)
The RAM preview keyed every frame by one identity of the whole comp, so any
edit (a cut, a trim, a nudge) made every cached frame a miss and the whole
comp recached. When only some of a comp's layers change, frames outside their
In-Out span now move to the new identity. Settings changes, reorders,
expressions, and edits that reach other layers (parents, track mattes, effect
layer pickers) still recache everything.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 16:43:57 +05:30
BFlat 853a1b65ec Merge pull request #1454 from Hamza0101/fix/german-menu-terms
i18n (de): fix two labels that name the wrong thing, and settle six terms
2026-10-16 18:13:57 +07:00
BFlat a3b62822be Merge pull request #1331 from onlymoein/codex/fix-1303-benchmark-evidence
Reject corrupt benchmark results and incomplete regression evidence
2026-10-16 18:13:45 +07:00
BFlat 5bbd982c32 Merge pull request #1566 from midasmatterhorn/fix/r4-inline-len-overflow
pdf: an inline image with absurd dimensions falls back to the EI scan
2026-10-16 18:13:33 +07:00
BFlat 5ad71a24e6 Merge pull request #1294 from vbasky/fix/1068-loop-import
Engine: sequence Interpret Footage loop regression coverage (#1068)
2026-10-16 18:13:22 +07:00
BFlat c672542b73 Merge pull request #1367 from nanox333/fix/viewer-comp-settings-menu
Viewer: Composition Settings… in the composition's right-click menu
2026-10-16 18:13:11 +07:00
BFlat ba384b89cd Merge pull request #1295 from vbasky/fix/1059-demo-space
UI: regression test — Space previews the demo opened from the start screen (#1059)
2026-10-16 18:12:59 +07:00
BFlat 9eec6ea705 Merge pull request #1344 from dotCooCoo/fix/find-missing-fonts-postscript-names
Find Missing Fonts: fonts found by their PostScript or full name are no longer listed
2026-10-16 18:12:47 +07:00
BFlat 13bcaee916 Merge pull request #1622 from dylanmtaylor/ci/shared-nix-workflow
ci: switch to shared nix workflow from craft-common-actions
2026-10-16 18:12:36 +07:00
BFlat 79bfc23c69 Merge pull request #1447 from midasmatterhorn/fix/glyph-name-char-boundary
pdf: don't slice glyph names at a non-char boundary in name_to_unicode
2026-10-16 18:12:24 +07:00
BFlat eba2c7015e Merge pull request #1455 from tydude001/rpm-soname-requires
packaging: RPM requires library sonames, so openSUSE can install it
2026-10-16 18:12:13 +07:00
BFlat 04a60d7747 Merge pull request #1311 from MarekSpodBiedry/issue-1263
Scripting: add the missing app.preferences.saveToDisk() so imported scripts like Duik get past startup (#1263)
2026-10-16 18:12:02 +07:00
BFlat 470ac13463 Merge pull request #1312 from zitann2020/i18n/ja-proportional-grid
i18n(ja): four labels After Effects contradicts
2026-10-16 18:11:50 +07:00
BFlat eea030b547 Merge pull request #1307 from zitann2020/i18n/ja-resolution-labels
i18n(ja): the resolution labels agree with the panel catalog and After Effects
2026-10-16 18:11:39 +07:00
BFlat 2265651b69 Merge pull request #1480 from IanHollow/codex/artcraft-effectcraft-metainfo-screenshot-bffb3039
Packaging: repair the AppStream screenshot reference
2026-10-16 18:11:27 +07:00
BFlat 1071e57dfd Merge pull request #1520 from MatejKozlovsky/frame0-failfast
GPU: stop drawing a frame once the device has failed
2026-10-16 18:11:16 +07:00
BFlat 86239e0f0c Merge pull request #1397 from onlymoein/patch-1
Update contributor key: moecr7 -> onlymoein
2026-10-16 18:11:04 +07:00
BFlat 49be0eb6cf Merge pull request #1258 from pravdomil/claude/settings-sidebar-button-gap-c80466
Settings: the page list's rows touch, with no gap between them
2026-10-16 18:10:52 +07:00
BFlat 0953011664 Merge pull request #1549 from MatejKozlovsky/upload-cache-dead-entries
gpu: upload cache drops textures of freed buffers on every insert
2026-10-16 18:10:41 +07:00
BFlat 5db68bf34a Merge pull request #1302 from vbasky/fix/1194-liquify-offset
Liquify: expose Distortion Mesh Offset in Effect Controls (#1194)
2026-10-16 18:10:30 +07:00