Fix rounding of `ImageButton` (#3531)
* ImageButton rounding fix * remove unnecessary struct creation * added rounding method for ImageButton * grammar fix * simplify the code slightly --------- Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
This commit is contained in:
parent
d0ff09ac20
commit
9ee6669f8f
|
|
@ -594,6 +594,14 @@ impl<'a> ImageButton<'a> {
|
||||||
self.sense = sense;
|
self.sense = sense;
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Set rounding for the `ImageButton`.
|
||||||
|
/// If the underlying image already has rounding, this
|
||||||
|
/// will override that value.
|
||||||
|
pub fn rounding(mut self, rounding: impl Into<Rounding>) -> Self {
|
||||||
|
self.image = self.image.rounding(rounding.into());
|
||||||
|
self
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> Widget for ImageButton<'a> {
|
impl<'a> Widget for ImageButton<'a> {
|
||||||
|
|
@ -621,7 +629,7 @@ impl<'a> Widget for ImageButton<'a> {
|
||||||
let selection = ui.visuals().selection;
|
let selection = ui.visuals().selection;
|
||||||
(
|
(
|
||||||
Vec2::ZERO,
|
Vec2::ZERO,
|
||||||
Rounding::ZERO,
|
self.image.image_options().rounding,
|
||||||
selection.bg_fill,
|
selection.bg_fill,
|
||||||
selection.stroke,
|
selection.stroke,
|
||||||
)
|
)
|
||||||
|
|
@ -630,7 +638,7 @@ impl<'a> Widget for ImageButton<'a> {
|
||||||
let expansion = Vec2::splat(visuals.expansion);
|
let expansion = Vec2::splat(visuals.expansion);
|
||||||
(
|
(
|
||||||
expansion,
|
expansion,
|
||||||
visuals.rounding,
|
self.image.image_options().rounding,
|
||||||
visuals.weak_bg_fill,
|
visuals.weak_bg_fill,
|
||||||
visuals.bg_stroke,
|
visuals.bg_stroke,
|
||||||
)
|
)
|
||||||
|
|
@ -646,10 +654,8 @@ impl<'a> Widget for ImageButton<'a> {
|
||||||
.layout()
|
.layout()
|
||||||
.align_size_within_rect(image_size, rect.shrink2(padding));
|
.align_size_within_rect(image_size, rect.shrink2(padding));
|
||||||
// let image_rect = image_rect.expand2(expansion); // can make it blurry, so let's not
|
// let image_rect = image_rect.expand2(expansion); // can make it blurry, so let's not
|
||||||
let image_options = ImageOptions {
|
let image_options = self.image.image_options().clone();
|
||||||
rounding, // apply rounding to the image
|
|
||||||
..self.image.image_options().clone()
|
|
||||||
};
|
|
||||||
widgets::image::paint_texture_load_result(ui, &tlr, image_rect, None, &image_options);
|
widgets::image::paint_texture_load_result(ui, &tlr, image_rect, None, &image_options);
|
||||||
|
|
||||||
// Draw frame outline:
|
// Draw frame outline:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue