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)]
|
#[setters(skip)]
|
||||||
handle: Handle,
|
handle: Handle,
|
||||||
class: crate::theme::Svg,
|
class: crate::theme::Svg,
|
||||||
|
#[setters(skip)]
|
||||||
pub(super) size: u16,
|
pub(super) size: u16,
|
||||||
content_fit: ContentFit,
|
content_fit: ContentFit,
|
||||||
#[setters(strip_option)]
|
#[setters(strip_option)]
|
||||||
|
|
@ -72,6 +73,22 @@ impl Icon {
|
||||||
None
|
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]
|
#[must_use]
|
||||||
fn view<'a, Message: 'a>(self) -> Element<'a, Message> {
|
fn view<'a, Message: 'a>(self) -> Element<'a, Message> {
|
||||||
let from_image = |handle| {
|
let from_image = |handle| {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue