refactor: align the corner radii order with the theme

It's [TL, TR, BR, BL] everywhere now
This commit is contained in:
Hojjat 2026-09-03 11:50:50 -06:00 • committed by Victoria Brekenfeld
parent f8344126a1
commit e8caf335b3
6 changed files with 27 additions and 33 deletions

View file

@ -286,10 +286,10 @@ impl IndicatorShader {
Uniform::new( Uniform::new(
"radius", "radius",
[ [
outer_radius[3] as f32,
outer_radius[1] as f32,
outer_radius[0] as f32, outer_radius[0] as f32,
outer_radius[1] as f32,
outer_radius[2] as f32, outer_radius[2] as f32,
outer_radius[3] as f32,
], ],
), ),
Uniform::new("scale", scale as f32), Uniform::new("scale", scale as f32),

View file

@ -86,12 +86,6 @@ impl ShadowShader {
let offset = [0., 5.]; let offset = [0., 5.];
let color = [0., 0., 0., if dark_mode { 0.45 } else { 0.35 }]; let color = [0., 0., 0., if dark_mode { 0.45 } else { 0.35 }];
let radius = radius.map(|r| ceil(r as f64)); let radius = radius.map(|r| ceil(r as f64));
let radius = [
radius[3], // top_left
radius[1], // top_right
radius[0], // bottom_right
radius[2], // bottom_left
];
let width = softness; let width = softness;
let sigma = width / 2.; let sigma = width / 2.;

View file

@ -247,10 +247,10 @@ impl BlurElement {
Uniform::new( Uniform::new(
"corner_radius", "corner_radius",
[ [
radii[3] as f32,
radii[1] as f32,
radii[0] as f32, radii[0] as f32,
radii[1] as f32,
radii[2] as f32, radii[2] as f32,
radii[3] as f32,
], ],
), ),
Uniform::new( Uniform::new(

View file

@ -99,10 +99,10 @@ where
Uniform::new( Uniform::new(
"corner_radius", "corner_radius",
[ [
radius[3] as f32,
radius[1] as f32,
radius[0] as f32, radius[0] as f32,
radius[1] as f32,
radius[2] as f32, radius[2] as f32,
radius[3] as f32,
], ],
), ),
Uniform::new( Uniform::new(
@ -145,10 +145,10 @@ where
geo: Rectangle<f64, Logical>, geo: Rectangle<f64, Logical>,
radius: [u8; 4], radius: [u8; 4],
) -> [Rectangle<f64, Logical>; 4] { ) -> [Rectangle<f64, Logical>; 4] {
let top_left = radius[3] as f64; let top_left = radius[0] as f64;
let top_right = radius[1] as f64; let top_right = radius[1] as f64;
let bottom_right = radius[0] as f64; let bottom_right = radius[2] as f64;
let bottom_left = radius[2] as f64; let bottom_left = radius[3] as f64;
[ [
Rectangle::new(geo.loc, Size::from((top_left, top_left))), Rectangle::new(geo.loc, Size::from((top_left, top_left))),

View file

@ -842,7 +842,7 @@ impl CosmicStack {
))); )));
}; };
let radii = radii.map(|[a, _, c, _]| [a, 0, c, 0]); let radii = radii.map(|[_, _, c, d]| [0, 0, c, d]);
windows[active].push_render_elements( windows[active].push_render_elements(
renderer, renderer,
window_loc, window_loc,
@ -1015,17 +1015,17 @@ impl CosmicStack {
.corner_radius(geometry_size) .corner_radius(geometry_size)
.unwrap_or([default_radius; 4]); .unwrap_or([default_radius; 4]);
corners[0] = 0;
corners[1] = 0; corners[1] = 0;
corners[3] = 0;
corners corners
} else { } else {
let mut corners = active_window.corner_radius(geometry_size).unwrap_or(radii); let mut corners = active_window.corner_radius(geometry_size).unwrap_or(radii);
corners[0] = radii[0].max(corners[0]); corners[0] = radii[0];
corners[1] = radii[1]; corners[1] = radii[1];
corners[2] = radii[2].max(corners[2]); corners[2] = radii[2].max(corners[2]);
corners[3] = radii[3]; corners[3] = radii[3].max(corners[3]);
corners corners
} }

View file

@ -438,12 +438,12 @@ impl CosmicWindow {
.map(|x| (x * scale as f32).round() as u8); .map(|x| (x * scale as f32).round() as u8);
if has_ssd && !clip { if has_ssd && !clip {
// bottom corners // bottom corners
radii[0] = 0;
radii[2] = 0; radii[2] = 0;
radii[3] = 0;
if is_tiled { if is_tiled {
// top corners // top corners
radii[0] = 0;
radii[1] = 0; radii[1] = 0;
radii[3] = 0;
} }
} }
@ -510,12 +510,12 @@ impl CosmicWindow {
&& !is_maximized; && !is_maximized;
if has_ssd && !clip { if has_ssd && !clip {
// bottom corners // bottom corners
radii[0] = 0;
radii[2] = 0; radii[2] = 0;
radii[3] = 0;
if is_tiled { if is_tiled {
// top corners // top corners
radii[0] = 0;
radii[1] = 0; radii[1] = 0;
radii[3] = 0;
} }
} }
@ -560,8 +560,8 @@ impl CosmicWindow {
self.0.with_program(|p| { self.0.with_program(|p| {
let mut radii = radii; let mut radii = radii;
if has_ssd { if has_ssd {
radii[0] = 0;
radii[1] = 0; radii[1] = 0;
radii[3] = 0;
} }
let theme = p.theme.lock().unwrap(); let theme = p.theme.lock().unwrap();
let frosted = if theme.cosmic().frosted_windows { let frosted = if theme.cosmic().frosted_windows {
@ -585,8 +585,8 @@ impl CosmicWindow {
}); });
if has_ssd { if has_ssd {
radii[0] = 0;
radii[2] = 0; radii[2] = 0;
radii[3] = 0;
let ssd_loc = location let ssd_loc = location
+ self + self
.0 .0
@ -691,26 +691,26 @@ impl CosmicWindow {
(has_ssd, true) => { (has_ssd, true) => {
let mut corners = p.window.corner_radius(geometry_size).unwrap_or(radii); let mut corners = p.window.corner_radius(geometry_size).unwrap_or(radii);
corners[0] = radii[0].max(corners[0]); corners[0] = if has_ssd {
radii[0]
} else {
radii[0].max(corners[0])
};
corners[1] = if has_ssd { corners[1] = if has_ssd {
radii[1] radii[1]
} else { } else {
radii[1].max(corners[1]) radii[1].max(corners[1])
}; };
corners[2] = radii[2].max(corners[2]); corners[2] = radii[2].max(corners[2]);
corners[3] = if has_ssd { corners[3] = radii[3].max(corners[3]);
radii[3]
} else {
radii[3].max(corners[3])
};
corners corners
} }
(true, false) => p (true, false) => p
.window .window
.corner_radius(geometry_size) .corner_radius(geometry_size)
.map(|[a, _, c, _]| [a, radii[1], c, radii[3]]) .map(|[_, _, c, d]| [radii[0], radii[1], c, d])
.unwrap_or([default_radius, radii[1], default_radius, radii[3]]), .unwrap_or([radii[0], radii[1], default_radius, default_radius]),
(false, false) => p (false, false) => p
.window .window
.corner_radius(geometry_size) .corner_radius(geometry_size)