From 39a5607400452fbf27fe2c1d14c1d2dea8d51447 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vuka=C5=A1in=20Vojinovi=C4=87?= <150025636+git-f0x@users.noreply.github.com> Date: Tue, 9 Sep 2025 15:30:12 +0200 Subject: [PATCH] improv(icon): use correct size variant for `Named` Update`Icon::size` method to correctly handle `Named` icons by using the provided size retroactively. --- src/widget/icon/mod.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/widget/icon/mod.rs b/src/widget/icon/mod.rs index 5a90d35..8b21b6d 100644 --- a/src/widget/icon/mod.rs +++ b/src/widget/icon/mod.rs @@ -43,6 +43,7 @@ pub struct Icon { #[setters(skip)] handle: Handle, class: crate::theme::Svg, + #[setters(skip)] pub(super) size: u16, content_fit: ContentFit, #[setters(strip_option)] @@ -72,6 +73,22 @@ impl Icon { None } + #[must_use] + pub fn size(mut self, size: u16) -> Self { + match &self.handle.data { + // ensures correct icon size variant selection + Data::Name(named) => { + let mut new_named = named.clone(); + new_named.size = Some(size); + self.handle = new_named.handle(); + } + _ => { + self.size = size; + } + } + self + } + #[must_use] fn view<'a, Message: 'a>(self) -> Element<'a, Message> { let from_image = |handle| {