From 0852511c3fa374715cd141257547dd2e050d3b52 Mon Sep 17 00:00:00 2001 From: Kristian Myram Date: Mon, 12 Oct 2026 19:19:00 +0200 Subject: [PATCH] #551: Shift+Spacebar plays every frame by default Shift+Spacebar set Skip to 1, so it played every other frame out of the box. It now plays every frame, like Spacebar. Skip still works when it is set. Co-Authored-By: Claude Haiku 5.5 --- crates/engine/src/preview.rs | 12 +++++++++--- crates/ui-egui/tests/ui_preview_align.rs | 3 ++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/crates/engine/src/preview.rs b/crates/engine/src/preview.rs index 5b9733ddd..76d21a806 100644 --- a/crates/engine/src/preview.rs +++ b/crates/engine/src/preview.rs @@ -205,9 +205,8 @@ impl PreviewPreset { pub fn default_for(s: PreviewShortcut) -> Self { let d = PreviewPreset::default(); match s { - PreviewShortcut::Spacebar => d, - // A lighter preview: every other frame. - PreviewShortcut::ShiftSpacebar => PreviewPreset { skip: 1, ..d }, + // Frame skipping is off by default; set Skip to play fewer frames. + PreviewShortcut::Spacebar | PreviewShortcut::ShiftSpacebar => d, PreviewShortcut::Numpad0 => PreviewPreset { range: PreviewRange::WorkArea, play_from: PlayFrom::RangeStart, ..d }, PreviewShortcut::ShiftNumpad0 => { PreviewPreset { range: PreviewRange::WorkArea, play_from: PlayFrom::RangeStart, skip: 1, resolution: PreviewResolution::Half, ..d } @@ -509,6 +508,13 @@ mod tests { assert_eq!(pl.frame_after(237, 1), None); } + /// #551: Shift+Spacebar used to skip every other frame out of the box. + #[test] + fn shift_spacebar_plays_every_frame_by_default() { + assert_eq!(PreviewPreset::default_for(PreviewShortcut::ShiftSpacebar).skip, 0); + assert_eq!(PreviewPreset::default_for(PreviewShortcut::ShiftSpacebar), PreviewPreset::default_for(PreviewShortcut::Spacebar)); + } + #[test] fn settings_commands_round_trip() { let mut s = comp_session(); diff --git a/crates/ui-egui/tests/ui_preview_align.rs b/crates/ui-egui/tests/ui_preview_align.rs index c2e03535e..e9b8d6c44 100644 --- a/crates/ui-egui/tests/ui_preview_align.rs +++ b/crates/ui-egui/tests/ui_preview_align.rs @@ -118,7 +118,8 @@ fn playback_follows_the_shortcut_options() { h.step(); assert!(h.state().playback.playing); assert_eq!(h.state().playback.shortcut, PreviewShortcut::ShiftSpacebar); - assert_eq!(h.state().playback.plan.unwrap().step, 2); + // Every frame by default (#551): Skip is 0 until the user sets it. + assert_eq!(h.state().playback.plan.unwrap().step, 1); } #[test]