Pull logic for clamping corner rounding radii out of Corners::to_pixels (#27460)

This seems more correct as corners are not necessarily only for rounding
radii.

Also applies clamping after scaling in `paint_quad`, deduplicating that
logic. This also provides a more precise result by doing the clamping
after scaling, avoiding floating point rounding issues (probably a
non-issue).

Release Notes:

- N/A
This commit is contained in:
Michael Sloan 2025-03-25 15:56:17 -06:00 committed by GitHub
parent 76192ea93c
commit 8c8f50d916
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 55 additions and 27 deletions

View file

@ -2333,13 +2333,19 @@ impl Window {
let scale_factor = self.scale_factor();
let content_mask = self.content_mask();
let opacity = self.element_opacity();
let bounds = quad.bounds.scale(scale_factor);
let corner_radii = quad
.corner_radii
.scale(scale_factor)
.clamp_radii_for_quad_size(bounds.size);
self.next_frame.scene.insert_primitive(Quad {
order: 0,
bounds: quad.bounds.scale(scale_factor),
bounds,
content_mask: content_mask.scale(scale_factor),
background: quad.background.opacity(opacity),
border_color: quad.border_color.opacity(opacity),
corner_radii: quad.corner_radii.scale(scale_factor),
corner_radii,
border_widths: quad.border_widths.scale(scale_factor),
border_style: quad.border_style,
});