diff --git a/src/main.rs b/src/main.rs index a624dee..7092d24 100755 --- a/src/main.rs +++ b/src/main.rs @@ -1722,6 +1722,11 @@ impl cosmic::Application for App { .on_press(Message::Present(presenter::Message::PlayPauseVideo)) }, ); + let video_position = if let Some(video) = &self.presenter.preview_video { + video.position().as_secs_f64() + } else { + 0.0 + }; let slide_preview = column![ Space::new().height(Length::Fill), @@ -1732,7 +1737,7 @@ impl cosmic::Application for App { row![ video_button_icon, Container::new( - slider(0.0..=video_range, self.presenter.video_position, |pos| { + slider(0.0..=video_range, video_position, |pos| { Message::Present(presenter::Message::VideoPos(pos)) }) .step(0.1) diff --git a/src/ui/presenter.rs b/src/ui/presenter.rs index 9857660..3d32c5e 100644 --- a/src/ui/presenter.rs +++ b/src/ui/presenter.rs @@ -409,6 +409,14 @@ impl Presenter { Err(e) => error!("Problem changing video position: {e}"), } } + if let Some(video) = &mut self.presentation_video { + let position = + Position::Time(std::time::Duration::from_secs_f64(position)); + match video.seek(position, false) { + Ok(()) => debug!("Video position changed: {:?}", position), + Err(e) => error!("Problem changing video position: {e}"), + } + } } Message::VideoFrame => { if let Some(video) = &self.preview_video