Commit Graph
1082 Commits
Author SHA1 Message Date
Kristian Myram 6da89b6ea8 #712: share eyedropper previews and translate the sampling hint 2026-10-30 02:17:34 +01:00
Claude e509710227 #712: register an automation id for the popup eyedropper's viewer surface
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RDvxCS8xcR28VArjzn1x7U
2026-10-29 11:29:50 +00:00
Claude eee8fa786c Merge main into fix/712-eyedroppers-everywhere
The Effect Controls viewer hook moved to effect_controls/viewer.rs and the frame loop to
app/frame.rs (#2491); the popup eyedropper is carried over as its own function there.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RDvxCS8xcR28VArjzn1x7U
2026-10-29 09:48:05 +00:00
BFlat b0e202a6e5 Merge pull request #1762 from dotCooCoo/fix/macos-quit-crash
Fix #341: on macOS, a quit goes through `terminate:`
2026-10-29 10:10:16 +07:00
dotCooCoo 6e8acedc0d Merge main into feat/recent-script-files 2026-10-28 14:23:49 -07:00
Dylan M. Taylor 6e72ab3b57 Refactor ui-egui for strict Clippy checks 2026-10-28 06:09:21 +00:00
dotCooCoo d4e33b2bda Fix #341: the platform quit runs last in App::logic
The merge of main put craft_quit::on_close_request inside
EffectcraftApp::tick, so the control channel, autosave, screenshots and the
desktop host's file dialogs still ran after it in the same logic callback.
The tick keeps the unsaved-changes check; each desktop host's logic now calls
panels::unsaved::quit_on_close last, after the device-loss close as well.
2026-10-27 22:46:27 -07:00
dotCooCoo 49ba71b0ce Merge main into fix/macos-quit-crash 2026-10-27 14:21:30 -07:00
dotCooCoo 2c2c51ca0c Preserve recent script files across menu and settings module changes 2026-10-27 10:11:33 -07:00
aiongg bc4b48f67d fix(ui): dropdown menus grow back after a search with no matches (#2511)
* fix(ui-egui): craft_ui::ComboBox for every combo box, so open menus grow back (egui#5225)

Repins craft-libs to aiongg/craft-libs 60d60d48 (storytold main with the shared
dropdown) and bans egui::ComboBox in clippy.toml.

* fix(ui-egui): font menu under the font field is a craft_ui combo menu that grows back

The filter row is the menu's header and only the font list scrolls, so a search
that matched nothing grows the menu back when it is cleared.

* chore(deps): craft-libs 4d7b82f7 (dropdown fixes)

* chore(deps): craft-libs 92d392cf (#387 merged)

* chore(xtask): pdf-deps expects craft-libs 92d392cf
2026-10-27 10:27:52 -04:00
aiongg b7b75ed37a style: cargo fmt on the moved files 2026-10-26 21:54:30 +00:00
aiongg f5f51f8db8 refactor(ui-egui): move viewer frame, geometry, gestures, shapes, tools and view parts to panels/viewer/*.rs 2026-10-26 21:49:12 +00:00
aiongg 9b52c71a71 refactor(ui-egui): move viewer tests to panels/viewer/tests.rs 2026-10-26 21:49:12 +00:00
aiongg 319d2cba3b refactor(ui-egui): move menu commands, dispatch, entries, shortcuts and the menu bar to menus/*.rs 2026-10-26 21:49:11 +00:00
aiongg 03f5ba581d refactor(ui-egui): move EffectcraftApp methods to app/*.rs 2026-10-26 21:49:11 +00:00
aiongg 0eea2d67ab refactor(ui-egui): move app constructors and eframe::App to app.rs, clock and hooks to their own files, screenshot and playback state to state.rs 2026-10-26 21:49:11 +00:00
aiongg da99df18b4 refactor(ui-egui): move lifecycle_tests to lifecycle_tests.rs 2026-10-26 21:49:11 +00:00
aiongg e59048107a refactor(ui-egui): move Effect Controls panel parts to panels/effect_controls/*.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 9991466ff1 refactor(engine): move prefs, session_settings, config, shortcuts, autosave to settings/ 2026-10-26 21:49:11 +00:00
aiongg bcf34a087c refactor(ui-egui): move src/workspace_state.rs tests to src/workspace_state/tests.rs 2026-10-26 21:49:11 +00:00
aiongg 188e39440a refactor(ui-egui): move src/pointer_wrap.rs tests to src/pointer_wrap/tests.rs 2026-10-26 21:49:11 +00:00
aiongg 2f26ee2e24 refactor(ui-egui): move src/panels/viewer_text.rs tests to src/panels/viewer_text/tests.rs 2026-10-26 21:49:11 +00:00
aiongg c4d5c9c499 refactor(ui-egui): move src/panels/timeline.rs tests to src/panels/timeline/tests.rs 2026-10-26 21:49:11 +00:00
aiongg c43158e859 refactor(ui-egui): move src/menus.rs tests to src/menus/tests.rs 2026-10-26 21:49:11 +00:00
aiongg 10ee0d51ab refactor(ui-egui): move src/frames.rs tests to src/frames/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 7ed8441e5e refactor(ui-egui): move src/panels/mod.rs to src/panels.rs 2026-10-26 21:49:10 +00:00
skylar taylor-barrick 6867f331f2 Merge pull request #2437 from storytold/codex/egui-037-effect-followup-20261025
Preserve migration regressions and fix software GPU median timeouts
2026-10-26 13:15:59 -06:00
Dylan M. Taylor 4c87a58c1a Use checked access in the WGSL grammar test scanner
The WGSL grammar test scanner indexed token characters directly, so a malformed shader could panic the test instead of failing it. Checked access turns that into a reported violation.
2026-10-26 13:08:12 -04:00
skylar taylor-barrick 69b9ce2bd1 M0.37: reconcile shared docking and qualify migration follow-up 2026-10-26 06:47:07 +01:00
aiongg 2961258879 Merge pull request #2458 from aiongg/comp-tabs
Timeline: each open comp is a tab in the group's tab row, with an overflow menu
2026-10-25 23:42:59 -04:00
aiongg fce4a88c92 Timeline: comp tabs draw through craft-ui's extra-tabs hook
Pin craft-libs crates to 3723e32a, which adds the group extra-tabs hook.
The comp tabs follow the panel tabs directly, with no drag bar between
them, and the group header holds only the lock and the panel menu.
2026-10-26 02:44:56 +00:00
aiongg 917c44cd26 Edit menu keys edit a focused text field, docked and in panel windows
The macOS menu bar takes Cmd+C, Cmd+X, Cmd+V, Cmd+A, Cmd+Z and Shift+Cmd+Z
before any window sees them. The menu only checked the main window's
keyboard focus, so with a text field focused in a floating panel's own OS
window those keys ran Copy, Paste or Undo on the project. The menu now asks
craft-ui which window is typing and sends the field its keys there (the
window fetches the clipboard text for Paste), and keeps the Edit items a
field takes enabled while one has the keyboard: Paste followed the project
clipboard and was greyed out with nothing copied there.
2026-10-26 02:29:04 +00:00
aiongg 1c7fbfd503 Timeline: each open comp is a tab in the group's tab row, with an overflow menu
The comp tabs follow the panel tabs and are drawn like them (craft-ui's
tab widget and the dock style's font and colours). The panel tabs keep
their full width; comps without room are listed in a » menu at the end
of the row, and picking one shows it. The shown comp's tab always stays
in the row, and the comp tabs stay while another panel of the group is
shown.
2026-10-26 02:23:51 +00:00
aiongg 6d063fc9de Merge upstream main into craft-ui-docking
craft-libs crates move to one rev, 37c907d2 (contains main's craft-update and craft-docpath pins).
Docs: native floating windows are Windows, macOS and X11 only; the UI estimate drops the
multi-monitor panel work that is done.
2026-10-26 01:59:50 +00:00
Dylan M. Taylor 966719d449 Merge pull request #2443 from WaldemarLehner/ui/resizehorizontal-cursor-on-workarea
fix(ui-egui): make hover over workarea selector set cursor to `ResizeHorizontal`
2026-10-25 19:25:35 -04:00
Waldemar Lehner 5c875cb240 fix(ui-egui): make hover over workarea selector set cursor to ResizeHorizontal 2026-10-25 23:43:02 +01:00
skylar c16a628849 chore(deps): refresh safe dependency bumps
serde_json 1.0.154, proptest 1.12.0, objc2 0.6.5, winresource 0.1.34, pollster 1.0.1, miniz_oxide 0.9.1, linesweeper 0.5.0, lz4_flex 0.14.0, muda 0.21.2.
2026-10-25 16:36:21 -06: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
aiongg 2d27fec81d Merge upstream main into craft-ui-docking
# Conflicts:
#	Cargo.toml
#	crates/ui-egui/Cargo.toml
2026-10-25 20:00:11 +00:00
Dylan M. Taylor 632162c9a7 build: pin craft-update to craft-libs main (db19c37); localize the update status messages
Picks up the fix that keeps the close request pending while the app holds unsaved work, the executable-name check in the Windows update helper, and the zip 9 / dirs-free build.

Part of tracking issue storytold/craft-libs#319
2026-10-25 15:34:22 -04:00
skylar taylor-barrick 47bf08a15e M-egui037: document migration behavior and guard atomic batch rollback 2026-10-25 19:56:09 +01:00
aiongg 54a7435f2b Docking: a native floating window publishes its IME descriptor after its editor or its last body
finish_ime after a body drawn before the Viewer cleared the preedit and
made the Viewer's publication a new context, so a window with another
group before the Viewer interrupted the composition every pass. Each
native window now counts its bodies from the layout and publishes once
its editor has recorded its geometry, or after its last body. A window
that drew fewer bodies than counted publishes after every body in its
next pass.
2026-10-25 18:54:11 +00:00
Dylan M. Taylor 1be30a1607 refactor(updates): drive the flow with craft-update's Updater
The check at start is opt-in for the desktop app, a successful update closes through the app's own close path, and no update starts over unsaved work.
2026-10-25 14:23:52 -04:00
aiongg 26dd2ab814 Merge #2367 (egui 0.37) into craft-ui-docking
# Conflicts:
#	Cargo.lock
#	Cargo.toml
#	apps/effectcraft/src/main.rs
#	crates/ui-egui/src/control.rs
#	crates/ui-egui/src/dock.rs
#	crates/ui-egui/src/dock_ui.rs
#	crates/ui-egui/src/lib.rs
#	crates/ui-egui/tests/it/shared_docking_ui.rs
#	crates/ui-egui/tests/it/ui_dock_resize.rs
#	crates/ui-egui/tests/it/ui_panel_windows.rs
#	crates/ui-egui/tests/it/ui_workspace_focus.rs
2026-10-25 18:06:51 +00:00
Dylan M. Taylor 6f813b74e9 refactor(updates): drive the flow with craft-update's Updater
Startup check is opt-in for the desktop app, the Windows update helper is dispatched before argument parsing, and a successful update closes through the app's own close path.
2026-10-25 13:58:39 -04:00
Dylan M. Taylor 89a0313ab0 fix(updates): report self-update results to the prompt and finish through the app's close path
Keeps the worker's failure visible instead of leaving the prompt installing, repaints while a check runs, and no longer calls process::exit past the unsaved-work prompt.
2026-10-25 13:58:38 -04:00
Dylan M. Taylor adcc3b916b feat: startup update prompt modal and direct self-updating
Integrate `craft-update` pinned to storytold/craft-libs fe61243 to check for
updates on startup, display the standard suite update modal with changelog notes,
and support one-click in-app updating and restart.

Ref: storytold/craft-libs#319
2026-10-25 13:58:38 -04:00