Christopher Linnett
9928f6181b
Text: duplicate during a text edit copies the layer, not a selected effect ( #2226 )
...
Opening the editor keeps the property selection, so Cmd+D while typing duplicated an
effect, shape item or text animator selected before and left the edit open. An open edit
now comes first, as it does for Clear: Duplicate ends it and copies the edited layer. With
no edit open, selected effects and items keep their precedence, and the command's
description says so.
2026-10-28 00:22:35 +08:00
Christopher Linnett
f7094b619b
Merge origin/main into fix/issue-2226-duplicate-during-text-edit
...
Main moved the engine's topic tests to src/tests/ and commands/ to cmd/. The
engine tests go to tests/text_edit.rs, opening their edit with its editing()
helper; ui_text_edit.rs keeps both sides' tests, this branch's first.
2026-10-28 00:16:44 +08:00
aiongg
b7b75ed37a
style: cargo fmt on the moved files
2026-10-26 21:54:30 +00:00
aiongg
4a5562c35b
refactor(engine): move layer commands to cmd/layer/*.rs
2026-10-26 21:49:11 +00:00
aiongg
770e30d3ed
refactor(engine): move settings model, page types and schema to settings/prefs/*.rs
2026-10-26 21:49:11 +00:00
aiongg
bba3291b24
refactor(engine): move Session methods to session/{dispatch,edit,comps,render}.rs
2026-10-26 21:49:11 +00:00
aiongg
2b4fcdd3db
refactor(engine): move error, services, document state, event, fonts and Session methods out of lib.rs
2026-10-26 21:49:11 +00:00
aiongg
d76cfc7c45
refactor(engine): move cmd.rs helpers to cmd/{schema,enabled,params}.rs
2026-10-26 21:49:11 +00:00
aiongg
eea1f50cd3
refactor(engine): move guard, logging, perf, sysinfo, storage to system/
2026-10-26 21:49:11 +00:00
aiongg
a7660a1e37
refactor(engine): move jobs, offload, remote to background/
2026-10-26 21:49:11 +00:00
aiongg
85e26db57d
refactor(engine): move learn, templates, demo, links to home/
2026-10-26 21:49:11 +00:00
aiongg
1c565ba2df
refactor(engine): move psd_import, vector, xml_project to interchange/
2026-10-26 21:49:11 +00:00
aiongg
d6b53650db
refactor(engine): move doc_path, footage_check, footage_reload, sequence, media_browser, media_cache to footage/
2026-10-26 21:49:11 +00:00
aiongg
9991466ff1
refactor(engine): move prefs, session_settings, config, shortcuts, autosave to settings/
2026-10-26 21:49:11 +00:00
aiongg
3b5e19027e
refactor(engine): move tracking, camera_track, mask_track, warp, roto, models to analysis/
2026-10-26 21:49:11 +00:00
aiongg
35e66b17a6
refactor(engine): move tests_<topic>.rs files to src/tests/, tests.rs content to tests/session.rs
2026-10-26 21:49:11 +00:00
aiongg
48afb082d5
refactor(engine): move src/remote.rs tests to src/remote/tests.rs
2026-10-26 21:49:11 +00:00
aiongg
fd2c828670
refactor(engine): move src/offload.rs tests to src/offload/tests.rs
2026-10-26 21:49:11 +00:00
aiongg
a3ea645fc6
refactor(engine): move commands/ to cmd/, keeping commands as an alias
2026-10-26 21:49:10 +00:00
aiongg
887af7f2c6
refactor(engine): move src/commands/mod.rs to src/commands.rs
2026-10-26 21:49:10 +00:00
Dylan M. Taylor
c618429252
Sonar: reduce cognitive complexity in footage reload, edit delete and text layout
2026-10-26 16:01:49 -04:00
skylar taylor-barrick
69b9ce2bd1
M0.37: reconcile shared docking and qualify migration follow-up
2026-10-26 06:47:07 +01:00
skylartaylor
f842a58a4f
M14: clarify text selection and footage playback contracts
2026-10-25 22:25:40 +01:00
Dylan M. Taylor
e821feeec4
Merge pull request #2274 from storytold/sonar/rust-s4325-s1612
...
sonar: method paths instead of closures (rust:S1612)
2026-10-25 16:36:06 -04:00
skylar taylor-barrick
47bf08a15e
M-egui037: document migration behavior and guard atomic batch rollback
2026-10-25 19:56:09 +01:00
Dylan M. Taylor
e88feff569
engine.batch: drop the events a rolled-back atomic batch queued
...
A failing atomic batch restored the project, history and state but left the
events its steps had already published, so the UI could open the comp the
rollback had just undone. Snapshot the event count with the other snapshots and
truncate before the rollback bumps.
🤖 Generated with Codebuff
Co-Authored-By: Codebuff <noreply@codebuff.com >
2026-10-25 13:14:28 -04:00
skylar taylor-barrick
dec327b98a
egui037: Preserve text ownership across unrelated history changes
2026-10-25 13:03:14 +01:00
skylar taylor-barrick
18206c1014
Fix text ownership after composition removal and simplify playback helpers
2026-10-25 11:40:05 +01:00
skylar taylor-barrick
57220d4d6a
Fix egui 0.37 text ownership and simplify UI lifecycle handlers
2026-10-25 10:18:26 +01:00
skylartaylor
9ee853715d
M0.37: migrate EffectCraft to egui 0.37
...
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.
2026-10-25 02:01:16 +01:00
Dylan M. Taylor and Claude Sonnet 5.5
4e9fa51f12
sonar: method paths instead of closures (rust:S1612)
...
Poison recovery, OsStr::to_str and char predicates only; S4325 casts are
f64 to f32 and stay.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-24 08:17:16 +00:00
Christopher Linnett
048d6c4a25
Text: duplicate ends the open text edit and selects the copy ( #2226 )
...
A deselected layer never keeps an open text edit: duplicate now commits any open
edit through the same route as text.endEdit before the selection moves, from every
route (menu, shortcut, palette, MCP, script). The editor-held keyboard matches the
chord against each command's current binding, like Deselect All already did, so
rebound shortcuts keep working and keys a focused editor must never surrender stay
typing.
2026-10-24 14:35:45 +08:00
aiongg
9a9574baaa
Merge #2016 : Settings: list the languages alphabetically by their own name (@nikolainyegaard)
2026-10-24 02:12:11 +00:00
aiongg
0db7ddb089
Merge #2228 : End an open text edit when Deselect All runs ( #2096 ) (@ChristopherLinnett)
2026-10-24 02:10:16 +00:00
aiongg
ad2f3a5e96
Merge #2184 : Reload a numbered still as its own file ( #2074 ) (@HEOJUNFO)
2026-10-24 01:12:00 +00:00
aiongg
34e2facd54
Merge #2177 : engine: deleting a layer clears the references to it ( #2153 ) (@Anubhav-Rai)
2026-10-24 01:11:56 +00:00
aiongg
cce71f69fc
Merge #1946 : #1926 : an edit no longer stamps every image-sequence frame for the disk cache (@ded-achtung)
2026-10-24 01:10:55 +00:00
aiongg
46302da794
Merge #2178 : Reject malformed thumbnail text without crashing ( #2135 ) (@Maokus)
2026-10-24 01:10:42 +00:00
aiongg
b6c1cff444
Merge #1833 : Tests: serialise disk-cache-opening tests with the roto tests (@iannitram)
2026-10-24 00:13:55 +00:00
aiongg
d664e403ae
Merge #2185 : Project Settings: Frame Count, Start at 0 or Start at 1 (@marcoarnulfo)
2026-10-24 00:13:55 +00:00
Christopher Linnett
a661f2ed60
Merge main into fix/issue-2096-deselect-during-text-edit
...
main moved crates/ui-egui/tests/ui_text_edit.rs to tests/it/ (one test binary per crate); this branch's test changes follow the move.
2026-10-24 07:59:29 +08:00
aiongg
ac5fc076df
Merge #2050 : 3D: add a New 3D Primitive dialog to Layer > New (@tylerjenningsw)
2026-10-23 23:33:19 +00:00
aiongg
bae27ebbe7
Merge #1841 : Cryptomatte: pick the ID under a point into the Selection (effect.pickCryptomatte) (@MatejKozlovsky)
2026-10-23 23:33:10 +00:00
aiongg
b7f8eb9019
Merge #2106 : engine: a keyframe on the out point no longer warns ( #2084 ) (@gmrmad1)
2026-10-23 23:21:33 +00:00
aiongg
4db5e01f69
Merge #2108 : engine: resolve effect match-name paths in prop_ref ( #2064 ) (@gmrmad1)
2026-10-23 23:21:33 +00:00
aiongg
fefe4b8a91
Merge #1843 : i18n: Georgian (ka) interface language (@devius)
2026-10-23 21:45:52 +00:00
aiongg
295d104e19
Merge #1699 : Preview: replaced browser media gets a new disk-cache key ( #1253 ) (@vbasky)
2026-10-23 21:36:58 +00:00
aiongg
ce73d42c42
Merge #1929 : Layer: replace a layer's source with Alt-drag and Ctrl+Alt+/ ( #991 ) (@ki2pixel)
2026-10-23 21:26:51 +00:00
aiongg
d0675be78b
Merge #1850 : Timeline: layer switches, labels and modes act on the whole selection ( #1849 ) (@ki2pixel)
2026-10-23 21:26:33 +00:00
aiongg
52a0c6626d
Merge #1931 : Layer: Reveal Layer Source in Project from the context menus ( #1809 ) (@ki2pixel)
2026-10-23 21:26:24 +00:00