From 95de215e2c318d719119d6bb191e515cf3476db4 Mon Sep 17 00:00:00 2001 From: Chris Cochrun Date: Sat, 30 May 2026 15:13:43 -0500 Subject: [PATCH] [fix] better width for preview of slide --- src/main.rs | 40 ++++++++++++++++++++++++---------------- src/ui/presenter.rs | 2 ++ 2 files changed, 26 insertions(+), 16 deletions(-) diff --git a/src/main.rs b/src/main.rs index d7ec617..8577a15 100755 --- a/src/main.rs +++ b/src/main.rs @@ -1850,12 +1850,23 @@ impl cosmic::Application for App { 0.0 }; - let slide_preview = column![ - Space::new().height(Length::Fill), - Container::new(self.presenter.view_preview().map(Message::Present),) - .height(250) - .align_bottom(Length::Fill), - Container::new(if self.presenter.preview_video.is_some() { + let mut slide_preview = column![ + responsive(|size| { + self.presenter + .view_preview() + .map(Message::Present) + .apply(container) + .width(Length::Fill) + .height(size.width * 9.0 / 16.0) + .into() + }) + .width(Length::Fill) + .height(Length::Shrink) + ] + .spacing(3); + + if self.presenter.preview_video.is_some() { + slide_preview = slide_preview.push( row![ video_button_icon, Container::new( @@ -1868,13 +1879,12 @@ impl cosmic::Application for App { .padding([7, 0, 0, 0]) ] .padding(5) - } else { - row![] - }) - .center_x(Length::Fill), - Space::new().height(Length::Fill) - ] - .spacing(3); + .apply(container) + .center_x(Length::Fill), + ); + } + + let slide_preview = slide_preview.apply(container).center_y(Length::Fill); let service_list = Container::new(self.service_list()) .padding([ @@ -1950,9 +1960,7 @@ impl cosmic::Application for App { .apply(container) .center_y(Length::Fill) .align_right(Length::FillPortion(1)), - Container::new(slide_preview) - .center_y(Length::Fill) - .width(Length::FillPortion(3)), + slide_preview.width(Length::FillPortion(3)), tooltip( button::custom(icon_right) .width(icon_size) diff --git a/src/ui/presenter.rs b/src/ui/presenter.rs index e3f3065..2f992da 100644 --- a/src/ui/presenter.rs +++ b/src/ui/presenter.rs @@ -16,6 +16,7 @@ use cosmic::iced::{ Vector, animation, }; use cosmic::prelude::*; +use cosmic::widget::aspect_ratio::aspect_ratio_container; use cosmic::widget::divider::{self, vertical}; use cosmic::widget::{ Container, Id, JustifyContent, Row, Space, column, container, flex_row, @@ -1055,6 +1056,7 @@ pub(crate) fn slide_view<'a>( delegate: bool, hide_mouse: bool, ) -> Element<'a, Message> { + // aspect_ratio_container(slide, ratio) responsive(move |size| { let width = size.height * 16.0 / 9.0; let black = Container::new(Space::new())