From b61cf33836d7e662b69026a0511eafdfd7fdd267 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Wed, 14 Oct 2026 13:49:36 -0400 Subject: [PATCH] Fix up merged PRs: custom-show links carry 'returns'; prefetch follows the show's own order Co-Authored-By: Claude Opus 5.5 --- crates/anim/src/show.rs | 2 +- crates/anim/src/tests.rs | 4 ++-- crates/ui-egui/src/show.rs | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/anim/src/show.rs b/crates/anim/src/show.rs index 2c49cc0c..0f71113b 100644 --- a/crates/anim/src/show.rs +++ b/crates/anim/src/show.rs @@ -347,7 +347,7 @@ impl ShowState { Action::FirstSlide => self.visit(pres).first().copied(), Action::LastSlide => self.visit(pres).last().copied(), Action::LastViewed => last_viewed, - Action::CustomShow { name } => { + Action::CustomShow { name, .. } => { let Some(order) = custom_indices(pres, name) else { return LinkJump::None }; let Some(&i) = order.first() else { return LinkJump::None }; self.order = Some(order); diff --git a/crates/anim/src/tests.rs b/crates/anim/src/tests.rs index f8fdfd4b..ab4d5146 100644 --- a/crates/anim/src/tests.rs +++ b/crates/anim/src/tests.rs @@ -726,10 +726,10 @@ fn playing_a_custom_show_stays_on_its_slides() { let mut s = ShowState::new(&p); p.slides[4] = Arc::new(Slide { id: SlideId(1004), ..Default::default() }); - assert_eq!(s.follow(&p, &Action::CustomShow { name: "Ends".into() }, None), LinkJump::Show(ShowAction::Slide(0))); + assert_eq!(s.follow(&p, &Action::CustomShow { name: "Ends".into(), returns: true }, None), LinkJump::Show(ShowAction::Slide(0))); assert_eq!(s.custom_name(), Some("Ends")); assert_eq!(s.next(&p), ShowAction::Slide(4)); - assert_eq!(s.follow(&p, &Action::CustomShow { name: "Missing".into() }, None), LinkJump::None); + assert_eq!(s.follow(&p, &Action::CustomShow { name: "Missing".into(), returns: true }, None), LinkJump::None); assert_eq!(s.slide, 4, "an unknown custom show leaves the current slide"); } diff --git a/crates/ui-egui/src/show.rs b/crates/ui-egui/src/show.rs index e23e8575..b3ac7f3a 100644 --- a/crates/ui-egui/src/show.rs +++ b/crates/ui-egui/src/show.rs @@ -693,7 +693,7 @@ pub fn ui(app: &mut SlideApp, ui: &mut Ui) { // While this slide rests, render the next one's first frame (not one with GIFs, whose // frame depends on when it is entered). if !animating && show.trans.is_none() && !show.preview_only { - let next = deckcraft_anim::show_order(&doc).into_iter().find(|i| *i > idx); + let next = show.state.peek_next(&doc); let wanted = next.filter(|n| app.media.gifs(doc_uid, &doc, *n, now, &app.session.gif_paused).is_empty()); if let Some(n) = wanted && show.prefetch.as_ref().is_none_or(|p| p.key.slide != n || p.key.size != size || p.key.doc != std::sync::Arc::as_ptr(&doc) as usize)