From c497c227ce806dec84cf66ffcae07745374b1ef8 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Wed, 11 Sep 2024 14:29:36 -0600 Subject: [PATCH] fix(segmented_button): use correct divider color when vertical --- src/widget/segmented_button/horizontal.rs | 11 +++++++---- src/widget/segmented_button/vertical.rs | 2 +- src/widget/segmented_button/widget.rs | 10 +++++++--- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/widget/segmented_button/horizontal.rs b/src/widget/segmented_button/horizontal.rs index 36decb2..a859b2c 100644 --- a/src/widget/segmented_button/horizontal.rs +++ b/src/widget/segmented_button/horizontal.rs @@ -92,10 +92,13 @@ where let mut divider = None; if self.dividers && segmetned_control && nth + 1 < num { - divider = Some(ItemBounds::Divider(Rectangle { - width: 1.0, - ..bounds - })); + divider = Some(ItemBounds::Divider( + Rectangle { + width: 1.0, + ..bounds + }, + true, + )); bounds.x += 1.0; } diff --git a/src/widget/segmented_button/vertical.rs b/src/widget/segmented_button/vertical.rs index 205022b..881774d 100644 --- a/src/widget/segmented_button/vertical.rs +++ b/src/widget/segmented_button/vertical.rs @@ -65,7 +65,7 @@ where divider_bounds.x += f32::from(self.button_padding[0]); divider_bounds.width -= f32::from(self.button_padding[0]); divider_bounds.width -= f32::from(self.button_padding[2]); - divider = Some(ItemBounds::Divider(divider_bounds)); + divider = Some(ItemBounds::Divider(divider_bounds, false)); bounds.y += divider_bounds.height + spacing; } diff --git a/src/widget/segmented_button/widget.rs b/src/widget/segmented_button/widget.rs index 732141d..709069f 100644 --- a/src/widget/segmented_button/widget.rs +++ b/src/widget/segmented_button/widget.rs @@ -39,7 +39,7 @@ pub fn focus(id: Id) -> Command { pub enum ItemBounds { Button(Entity, Rectangle), - Divider(Rectangle), + Divider(Rectangle, bool), } /// Isolates variant-specific behaviors from [`SegmentedButton`]. @@ -1299,7 +1299,7 @@ where ItemBounds::Button(entity, bounds) => (entity, bounds), // Draw a divider between buttons - ItemBounds::Divider(bounds) => { + ItemBounds::Divider(bounds, accented) => { renderer.fill_quad( renderer::Quad { bounds, @@ -1308,7 +1308,11 @@ where }, { let theme = crate::theme::active(); - Background::Color(theme.cosmic().small_widget_divider().into()) + if accented { + Background::Color(theme.cosmic().small_widget_divider().into()) + } else { + Background::Color(theme.cosmic().primary_container_divider().into()) + } }, );