From 94d2c18a233b15ef98994d7f4336b744050b4142 Mon Sep 17 00:00:00 2001 From: Ashley Wulber Date: Fri, 12 Jun 2026 15:10:29 -0400 Subject: [PATCH] chore: dialog default to overlay --- src/theme/style/iced.rs | 11 +++++++---- src/widget/dialog.rs | 9 ++++++++- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/theme/style/iced.rs b/src/theme/style/iced.rs index bac6e275..97246369 100644 --- a/src/theme/style/iced.rs +++ b/src/theme/style/iced.rs @@ -393,7 +393,7 @@ pub enum Container<'a> { transparent: bool, }, Custom(Box iced_container::Style + 'a>), - Dialog, + Dialog(bool), Dropdown, HeaderBar { focused: bool, @@ -688,14 +688,17 @@ impl iced_container::Catalog for Theme { } } - Container::Dialog => iced_container::Style { + Container::Dialog(is_overlay) => iced_container::Style { icon_color: Some(Color::from(cosmic.primary(self.transparent).on)), text_color: Some(Color::from(cosmic.primary(self.transparent).on)), background: Some(iced::Background::Color( - cosmic.primary(self.transparent).base.into(), + cosmic.primary(self.transparent && !is_overlay).base.into(), )), border: Border { - color: cosmic.primary(self.transparent).divider.into(), + color: cosmic + .primary(self.transparent && !is_overlay) + .divider + .into(), width: 1.0, radius: cosmic.corner_radii.radius_m.into(), }, diff --git a/src/widget/dialog.rs b/src/widget/dialog.rs index 72ab11f4..4ee027bd 100644 --- a/src/widget/dialog.rs +++ b/src/widget/dialog.rs @@ -18,6 +18,7 @@ pub struct Dialog<'a, Message> { height: Option, max_width: Option, max_height: Option, + is_overlay: bool, } impl Default for Dialog<'_, Message> { @@ -40,6 +41,7 @@ impl<'a, Message> Dialog<'a, Message> { height: None, max_width: None, max_height: None, + is_overlay: true, } } @@ -97,6 +99,11 @@ impl<'a, Message> Dialog<'a, Message> { self.max_width = Some(max_width.into()); self } + + pub fn is_overlay(mut self, is_overlay: bool) -> Self { + self.is_overlay = is_overlay; + self + } } impl<'a, Message: Clone + 'static> From> for Element<'a, Message> { @@ -157,7 +164,7 @@ impl<'a, Message: Clone + 'static> From> for Element<'a, Mes let mut container = widget::container( widget::column::with_children([content_row.into(), button_row.into()]).spacing(space_l), ) - .class(style::Container::Dialog) + .class(style::Container::Dialog(dialog.is_overlay)) .padding(space_m) .width(dialog.width.unwrap_or(Length::Fixed(570.0)));