From c8aaac824d71243e56a09b31e6063239c1cc6222 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 11 Oct 2026 09:06:44 +0000 Subject: [PATCH] shortcuts: Go to Work Area Start / End default to Shift+Home / Shift+End, as in After Effects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Split out of 7782ab01 (shapes: Reverse Path Direction …; work area keys) for upstream, where it belongs with the commands it binds. (cherry picked from commit 7782ab015a01613c1685cb6dda48d48c3b1db67b) Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01F2dXDtF1ivCLP4tQwFveQ4 (cherry picked from commit b58cfb7434e147535e66582718b8856bd3ce1230) (cherry picked from commit ff4876054f3cbf9388954602e8fe7288d136c255) (cherry picked from commit 79d083a8c2a0bfa4663445257149a0d0ce491987) --- crates/engine/src/commands/time.rs | 4 ++-- crates/engine/src/tests_tail.rs | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/crates/engine/src/commands/time.rs b/crates/engine/src/commands/time.rs index eaa149d9..22879cf3 100644 --- a/crates/engine/src/commands/time.rs +++ b/crates/engine/src/commands/time.rs @@ -180,8 +180,8 @@ pub fn specs() -> Vec { cmd!("time.step", "Step Frames", [], None, "{frames}", has_comp, step), cmd!("time.start", "Go to Start", [], Some("Home"), "{}", has_comp, |s, _| go(s, &json!({"to": "start"}))), cmd!("time.end", "Go to End", [], Some("End"), "{}", has_comp, |s, _| go(s, &json!({"to": "end"}))), - cmd!("time.workAreaStart", "Go to Work Area Start", [], None, "{}", has_comp, |s, _| go(s, &json!({"to": "workStart"}))), - cmd!("time.workAreaEnd", "Go to Work Area End", [], None, "{}", has_comp, |s, _| go(s, &json!({"to": "workEnd"}))), + cmd!("time.workAreaStart", "Go to Work Area Start", [], Some("Shift+Home"), "{}", has_comp, |s, _| go(s, &json!({"to": "workStart"}))), + cmd!("time.workAreaEnd", "Go to Work Area End", [], Some("Shift+End"), "{}", has_comp, |s, _| go(s, &json!({"to": "workEnd"}))), cmd!("time.layerIn", "Go to Layer In Point", [], Some("I"), "{}", has_comp, |s, _| go(s, &json!({"to": "layerIn"}))), cmd!("time.layerOut", "Go to Layer Out Point", [], Some("O"), "{}", has_comp, |s, _| go(s, &json!({"to": "layerOut"}))), cmd!( diff --git a/crates/engine/src/tests_tail.rs b/crates/engine/src/tests_tail.rs index e409fc66..2710365e 100644 --- a/crates/engine/src/tests_tail.rs +++ b/crates/engine/src/tests_tail.rs @@ -436,3 +436,13 @@ fn numeric_string_resolves_as_id() { let r = s.execute("layer.tree", json!({"layer": l.to_string(), "comp": cid.0.to_string()})).unwrap(); assert_eq!(r["id"].as_u64(), Some(l), "{r}"); } + +/// Go to Work Area Start / End have After Effects' default keys (Shift+Home / Shift+End). +#[test] +fn work_area_navigation_has_after_effects_default_keys() { + let s = Session::default(); + for (id, key) in [("time.workAreaStart", "Shift+Home"), ("time.workAreaEnd", "Shift+End")] { + let b = s.shortcuts().find(id).unwrap_or_else(|| panic!("{id} is bindable")); + assert_eq!(b.defaults, [key.to_string()], "{id}"); + } +}