Commit Graph
628 Commits
Author SHA1 Message Date
BFlat a0bec0905c Merge pull request #2595 from zitann2020/text/keep-empty-layer
fix(text): keep an empty Type-tool layer, as AE does
2026-10-30 04:09:42 +07:00
BFlat 19d75179f9 Merge pull request #2250 from slager2/fix/2172-animation-browse-presets
Fix Animation > Browse Presets command
2026-10-30 04:08:59 +07:00
BFlat b614693b51 Merge pull request #1654 from elZanco/tools-double-click-create
UI: double-clicking a creation tool in the Tools bar makes an instance (#1072)
2026-10-30 04:08:44 +07:00
BFlat 7043fde70a Merge pull request #1314 from tylerjenningsw/fix/expression-value-color
UI: colour expression-driven numeric values consistently (refs #1072)
2026-10-30 04:08:14 +07:00
BFlat 686da9f7eb Merge pull request #1291 from tylerjenningsw/enhance/batch-parent-matte
Timeline: parent and matte selected layers together (#1260)
2026-10-30 04:08:08 +07:00
BFlat bcbd6db402 Merge pull request #1100 from pravdomil/claude/compositing-buttons-positioning-b52693
UI: Composition Settings keeps Cancel and OK in place between tabs
2026-10-30 04:07:53 +07:00
BFlat 43a5b6ef7a Merge pull request #1036 from pravdomil/claude/trackpad-gestures-viewer-e43bc3
Viewer trackpad gestures: two-finger scroll pans, pinch zooms
2026-10-30 04:07:45 +07:00
BFlat 365e4dd4ab Merge pull request #822 from pravdomil/claude/remove-panel-title-underline-9dd90c
UI: open padlock on an unlocked viewer lock; inactive comp tabs show their × on hover
2026-10-30 04:07:37 +07:00
bflatasticandClaude Opus 5.5 1549d63c66 Viewer: Shift keeps a dragged mask or shape vertex to one axis, as in After Effects (#1964)
Gesture::Vertices took the raw drag delta; it now goes through one_axis, as a
Shift-dragged layer's move does, before snapping.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 03:17:26 +07:00
pravdomilandClaude Opus 5.5 b70d69fcb1 UI: an inactive comp tab shows its × on hover
The Timeline's comp tabs had a × on the shown comp only, so closing another
comp meant showing it first. A comp tab the Timeline does not show now shows
its × while the pointer is over it, and clicking it closes that comp without
showing it. Every comp tab keeps the ×'s room, so a tab keeps its width when
it is shown or hovered. Automation: `panel.tab.Timeline.<comp>.close` for
each comp's ×; `panel.tab.Timeline.close` stays for the shown comp's.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 20:41:46 +01:00
pravdomilandClaude Opus 5.5 caedb0727a Viewer trackpad gestures: two-finger scroll pans, pinch zooms
The Composition and Layer viewers took every scroll as a zoom, so a trackpad
could not pan. A trackpad's two-finger scroll now pans; a pinch,
Ctrl/Cmd+scroll, a mouse wheel and Alt + a trackpad scroll zoom around the
pointer.

Where the platform names the device (egui's MouseWheelSource, macOS), that
decides. Elsewhere browsers and some high-resolution wheels report a mouse
wheel in points, as a trackpad does, so the unit alone doesn't decide. A
scroll in points pans only once it has shown it is a trackpad: a touch phase,
movement on both axes at once, or a pinch. That holds until a wheel scrolls
in lines. Until then the vertical part zooms and the horizontal part pans.

ui.scroll gains unit (point|line), source (wheel|trackpad) and pinch so
agents can drive both gestures.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 20:21:10 +01:00
pravdomilandClaude Opus 5.5 edb3b5985e UI: Composition Settings keeps Cancel and OK in place between tabs
The button row followed each tab's content, so it jumped when switching
between Basic, Advanced and 3D Renderer. The tabs not on show are laid out
unseen each frame and the dialog pads to the tallest, so Cancel and OK stay
put with any font, language or scale.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 20:16:24 +01:00
Egon 5000 34aef98725 UI: double-clicking a creation tool in the Tools bar makes an instance (#1072)
A double-click on a creation tool in the Tools bar makes what it draws, as in After Effects: a text layer from the Type tools; from the shape tools a shape that fills the comp - into the selected shape layer's Contents, as a mask on the selected layer (or when Tool Creates Mask is on), or as a new shape layer when neither applies. The shape geometry defaults now match AE: the Rounded Rectangle tool's Roundness is a fixed 20 instead of growing with the drawn size, and the Polygon tool draws five points.
2026-10-29 19:52:55 +01:00
bflatastic e023d42a82 Merge remote-tracking branch 'origin/main' into fix/959-shape-content-eyes 2026-10-30 01:27:53 +07:00
BFlat eccb1883e2 Merge pull request #1092 from vangel76/fix-1083-beat-marker-audio-pause
Markers: adding one during playback no longer stops the audio (#1083, #1085)
2026-10-30 01:23:37 +07:00
BFlat decad188aa Merge pull request #1805 from nanox333/feat/marker-name-box
Marker names are drawn in a small outlined box, in theme colours
2026-10-30 01:22:36 +07:00
BFlat b42cbcdb5e Merge pull request #1921 from tylerjenningsw/enhance/keyframe-text-clipboard
Clipboard: export keyframes as After Effects-compatible text
2026-10-30 01:22:04 +07:00
BFlat 8c7c8bee8c Merge pull request #2519 from WillPastor/codex/2492-timeline-drag-release
Fix timeline layer drops after scrolling (#2492)
2026-10-30 01:21:15 +07:00
BFlat 9cb5255575 Merge pull request #1177 from tylerjenningsw/fix/947-preview-opening-audio
Preview: preserve opening audio while preparing video playback (#947)
2026-10-30 01:20:53 +07:00
tylerjenningsw c979f5aebd Merge origin/main into fix/expression-value-color (#1306)
Main split the panels' value editors into one function per value kind.
The expression colour now comes from Tokens::for_value in each of them:
Effect Controls through PropCx::value_tokens, the Timeline's scalar,
vector and enum editors, and the Properties transform row.
2026-10-29 14:20:05 -04:00
BFlat 6f1d11af94 Merge pull request #1385 from tylerjenningsw/enhance/pickwhip-index-refs
Expressions: Alt-pickwhip references effect parameters by index (refs #1072)
2026-10-30 01:18:08 +07:00
bflatasticandClaude Opus 5.5 9424c9eeb1 Timeline: every shape Contents item has an eye switch, as in After Effects (#959)
Groups, paths, fills, strokes and operators in a shape layer's Contents show the
Video eye in the A/V column (a group's Transform doesn't). Clicking it runs
prop.setGroupEnabled, which the shape renderer already honours; layer-style
eyes keep layer.style.toggle. Row building and search results share eye_of.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 00:52:26 +07:00
tylerjenningsw 5f22e63e93 Merge remote-tracking branch 'origin/main' into enhance/batch-parent-matte 2026-10-29 13:29:22 -04:00
bflatastic 1642bc54e1 Merge main into #2550; keep both sides of contributors/people.toml 2026-10-30 00:15:29 +07:00
BFlat fbb7dc325a Merge pull request #2466 from dotCooCoo/integration/bugfix-effectcraft-bugfix
Fixes: macOS quit crash, soft shadow jitter, Interpret Footage params, preset upgrade, composition proxies, font menu names
2026-10-30 00:13:49 +07:00
BFlat 70f2886b90 Merge pull request #1297 from tylerjenningsw/fix/menu-hover-switch
Menus: a pointer coming back into the window over another title switches menus (#1290)
2026-10-30 00:12:55 +07:00
BFlat 81339f26c0 Merge pull request #2526 from nanox333/fix/workspace-save-pending
Workspaces: wait for migrated window positions before saving
2026-10-30 00:12:16 +07:00
BFlat 7974a74f1b Merge pull request #2527 from nanox333/fix/docking-raw-open-guard
Docking: reject raw panel opens through command aliases
2026-10-30 00:10:05 +07:00
bflatastic 1fde74b5f2 Merge remote-tracking branch 'origin/main' into HEAD 2026-10-29 23:19:56 +07:00
bflatasticandClaude Opus 5.5 cef812b4c1 UI tests: the marker-name test is a module of the tests/it binary (#2491)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 23:17:07 +07:00
bflatastic d5163b6125 Merge remote-tracking branch 'origin/main' into HEAD 2026-10-29 23:16:09 +07:00
zitann2020andDeepSeek V4.1 Flash 197d6cd229 fix(text): the tests and docs follow the layer being kept
Review of the first commit found three places that still asserted the old cleanup: the UI integration
test (which would have failed CI), docs/agents.md, and the comments on TextEdit::created, layer.newText
and the engine test itself.

Co-Authored-By: DeepSeek V4.1 Flash <noreply@deepseek.com>
2026-10-30 01:09:35 +09:00
WillPastor 559958ea62 Fix timeline drop targets and deleted drag layers (#2492)
Resolve viewport-edge insertion through the full Timeline outline, skipping
moving layers even below the viewport. Cancel a gesture if any captured
layer disappears before its ID can be interpreted as a layer index.

Cover intermediate drops, selected groups, deletion of the owner or another
group member, Undo/Redo, and later independent drags.
2026-10-28 19:32:33 -04:00
WillPastor 4fccf2a3b7 Fix timeline layer drops after scrolling (#2492)
Finish reordering from the stored egui drag owner and primary-button
release even when wheel scrolling culls the originating row. Cancel
disabled, interrupted or stale gestures before they can arrange layers.

Cover scrolling in both directions, selected groups, Undo/Redo, later
drags and cancellation boundaries, including opening Settings mid-drag.
Make the existing no-op control cross the drag threshold.

Fixes #2492.
2026-10-28 13:58:33 -04:00
Altynzhan Karybai 60011b72f3 Keep Browse Presets section visible (#2172) 2026-10-28 21:02:17 +05:00
Altynzhan Karybai 4d35663aba Merge upstream/main into fix/2172-animation-browse-presets 2026-10-28 21:01:37 +05:00
ashokram-si 56ffc2e642 Test: the ellipse's Size chain keeps its ratio when linked
Review follow-up: the shape Size test linked only the rectangle, so a
change that handled rect and not ellipse would still pass. Link the
ellipse too and check that its height follows its width.
2026-10-28 16:08:46 +05:30
ashokram-si b97cc92a61 feat(ui): Rectangle and Ellipse Size get the Constrain Proportions chain (#2489)
Resizing a rectangle or ellipse while keeping its proportions (a circle
that stays a circle, a 16:9 card that stays 16:9) needed W and H typed
or keyed separately. The Timeline's Size row of a shape's Rectangle
Path and Ellipse Path now has the chain link that Scale and Mask
Feather have. It starts off; turned on, typing or scrubbing W or H
keeps the ratio (Alt still edits one value).

Scale and Mask Feather keep their linked-by-default state in `unlinked`;
Size, which starts unlinked, records a turned-on link in a new `linked`
set, so neither default changes the other's saved state.
2026-10-28 14:52:33 +05:30
dotCooCoo 49ba71b0ce Merge main into fix/macos-quit-crash 2026-10-27 14:21:30 -07:00
Kristian Myram 335d1f56ac #2459: reject raw opens through docking command aliases 2026-10-27 20:30:13 +00:00
Kristian Myram 82123f0d02 #696: reject workspace saves while window positions migrate 2026-10-27 20:23:24 +00:00
tylerjenningsw ef825f2947 Merge remote-tracking branch 'origin/main' into enhance/pickwhip-index-refs 2026-10-27 14:13:51 -04:00
tylerjenningsw ecc3e673bc Merge remote-tracking branch 'origin/main' into enhance/keyframe-text-clipboard 2026-10-27 14:13:38 -04:00
tylerjenningsw b1c0a2394d Merge remote-tracking branch 'origin/main' into enhance/batch-parent-matte 2026-10-27 14:13:37 -04:00
tylerjenningsw 2dcd1b27a9 Merge remote-tracking branch 'origin/main' into fix/947-preview-opening-audio
# Conflicts:
#	crates/ui-egui/src/lib.rs
2026-10-27 14:13:31 -04:00
tylerjenningsw 8c7990c65f Merge remote-tracking branch 'origin/main' into fix/expression-value-color
# Conflicts:
#	crates/ui-egui/src/panels/effect_controls.rs
2026-10-27 14:05:11 -04:00
tylerjenningsw 238361e59f Menus: a pointer coming back into the window over another title switches menus (#1290) 2026-10-27 14:03:48 -04:00
tylerjenningsw 8220d96929 Menus: tests that hover switching leaves submenus, a disabled bar and the arrow keys alone (#1290) 2026-10-27 14:03:12 -04:00
vangel76andClaude Sonnet 5.5 9fc04e8fe3 Merge upstream/main into fix-1083-beat-marker-audio-pause
Conflicts came from upstream splitting crates/project/src/lib.rs and moving the
frames tests. Re-applied the branch's change in the new places:
- Layer::same_pixels_with now in crates/project/src/layer.rs
- Comp::same_pixels_with, same_settings(o, with_markers), pixel_form_with and the
  timing-marker helpers in crates/project/src/comp.rs (same_pixels_ignoring_markers
  stays removed)
- Project::reads_markers in crates/project/src/item.rs
- crates/ui-egui/src/frames.rs uses reads_markers/same_pixels_with; the branch's
  two marker tests replace the old ones in crates/ui-egui/src/frames/tests.rs

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-27 17:09:17 +01:00
dotCooCoo c0f6151185 Preserve font name fallback in the shared dropdown menu 2026-10-27 08:31:12 -07:00