From 0ebcfa24a320ea3675fc7ec1248cf1819b92d72a Mon Sep 17 00:00:00 2001 From: Victoria Brekenfeld Date: Fri, 7 Jul 2023 17:46:29 +0200 Subject: [PATCH] tiling: Also render resize indicators without active hint --- src/shell/layout/tiling/mod.rs | 71 +++++++++++++++++----------------- 1 file changed, 35 insertions(+), 36 deletions(-) diff --git a/src/shell/layout/tiling/mod.rs b/src/shell/layout/tiling/mod.rs index 307e6553..4aa73ac5 100644 --- a/src/shell/layout/tiling/mod.rs +++ b/src/shell/layout/tiling/mod.rs @@ -2557,42 +2557,6 @@ where )); } - if let Some((mode, resize)) = resize_indicator.as_mut() { - let mut geo = geo.clone(); - geo.loc -= (18, 18).into(); - geo.size += (36, 36).into(); - - resize.resize(geo.size); - resize.output_enter(output, output_geo); - let possible_edges = - TilingLayout::possible_resizes(target_tree, node_id); - if !possible_edges.is_empty() { - if resize.with_program(|internal| { - let mut edges = internal.edges.lock().unwrap(); - if *edges != possible_edges { - *edges = possible_edges; - true - } else { - false - } - }) { - resize.force_update(); - } - resize_elements = Some( - resize - .render_elements::>( - renderer, - geo.loc.to_physical_precise_round(output_scale), - output_scale.into(), - alpha * mode.alpha().unwrap_or(1.0), - ) - .into_iter() - .map(CosmicMappedRenderElement::from) - .collect::>(), - ); - } - } - indicator = Some(IndicatorShader::focus_element( renderer, match data { @@ -2608,6 +2572,41 @@ where 1.0, )); } + + if let Some((mode, resize)) = resize_indicator.as_mut() { + let mut geo = geo.clone(); + geo.loc -= (18, 18).into(); + geo.size += (36, 36).into(); + + resize.resize(geo.size); + resize.output_enter(output, output_geo); + let possible_edges = TilingLayout::possible_resizes(target_tree, node_id); + if !possible_edges.is_empty() { + if resize.with_program(|internal| { + let mut edges = internal.edges.lock().unwrap(); + if *edges != possible_edges { + *edges = possible_edges; + true + } else { + false + } + }) { + resize.force_update(); + } + resize_elements = Some( + resize + .render_elements::>( + renderer, + geo.loc.to_physical_precise_round(output_scale), + output_scale.into(), + alpha * mode.alpha().unwrap_or(1.0), + ) + .into_iter() + .map(CosmicMappedRenderElement::from) + .collect::>(), + ); + } + } } if let Data::Mapped { mapped, .. } = data {