improv(icon): use correct size variant for Named
Update`Icon::size` method to correctly handle `Named` icons by using the provided size retroactively.
This commit is contained in:
parent
ac18f009b4
commit
39a5607400
1 changed files with 17 additions and 0 deletions
|
|
@ -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| {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue