layout/tiling: Fix render order of group backdrop when swapping

This commit is contained in:
Victoria Brekenfeld 2025-12-16 18:57:38 +01:00 committed by Victoria Brekenfeld
parent f0b384e240
commit 1e0c4f9b05

View file

@ -4935,6 +4935,10 @@ where
} }
} }
if root.is_none() {
elements.clear();
}
(geometries, elements) (geometries, elements)
} }
@ -5418,7 +5422,7 @@ where
geo.loc += (outer_gap, outer_gap).into(); geo.loc += (outer_gap, outer_gap).into();
geo.size -= (outer_gap * 2, outer_gap * 2).into(); geo.size -= (outer_gap * 2, outer_gap * 2).into();
group_backdrop = Some(BackdropShader::element( let backdrop = BackdropShader::element(
renderer, renderer,
match data { match data {
Data::Group { alive, .. } => Key::Group(Arc::downgrade(alive)), Data::Group { alive, .. } => Key::Group(Arc::downgrade(alive)),
@ -5428,7 +5432,13 @@ where
radius[0] as f32, radius[0] as f32,
0.4, 0.4,
group_color, group_color,
)); );
if focused.as_ref() == Some(&node_id) {
group_backdrop = Some(backdrop);
} else {
indicators.push(backdrop.into());
}
} }
if !swap_desc if !swap_desc
.as_ref() .as_ref()
@ -5436,24 +5446,26 @@ where
.unwrap_or(false) .unwrap_or(false)
|| focused.as_ref() == Some(&node_id) || focused.as_ref() == Some(&node_id)
{ {
indicators.push(IndicatorShader::focus_element( indicators.push(CosmicMappedRenderElement::FocusIndicator(
renderer, IndicatorShader::focus_element(
match data { renderer,
Data::Mapped { mapped, .. } => { match data {
Key::Window(Usage::FocusIndicator, mapped.clone().key()) Data::Mapped { mapped, .. } => {
} Key::Window(Usage::FocusIndicator, mapped.clone().key())
Data::Group { alive, .. } => Key::Group(Arc::downgrade(alive)), }
_ => unreachable!(), Data::Group { alive, .. } => Key::Group(Arc::downgrade(alive)),
}, _ => unreachable!(),
geo, },
if data.is_group() { geo,
4 if data.is_group() {
} else { 4
indicator_thickness } else {
}, indicator_thickness
radius, },
alpha, radius,
[window_hint.red, window_hint.green, window_hint.blue], alpha,
[window_hint.red, window_hint.green, window_hint.blue],
),
)); ));
} }