Hide focus ring for unfocused layout and under interactive move

This commit is contained in:
Ivan Molodetskikh
2024-12-29 11:04:08 +03:00
parent d1998ae3fa
commit be05b66ac3
7 changed files with 33 additions and 9 deletions
+13 -4
View File
@@ -1308,16 +1308,25 @@ impl<W: LayoutElement> Workspace<W> {
&self,
renderer: &mut R,
target: RenderTarget,
focus_ring: bool,
) -> impl Iterator<Item = WorkspaceRenderElement<R>> {
let scale = Scale::from(self.scale.fractional_scale());
let scrolling = self.scrolling.render_elements(renderer, scale, target);
let scrolling_focus_ring = focus_ring && !self.floating_is_active();
let scrolling =
self.scrolling
.render_elements(renderer, scale, target, scrolling_focus_ring);
let scrolling = scrolling.into_iter().map(WorkspaceRenderElement::from);
let floating_focus_ring = focus_ring && self.floating_is_active();
let floating = self.is_floating_visible().then(|| {
let view_rect = Rectangle::from_loc_and_size((0., 0.), self.view_size);
let floating = self
.floating
.render_elements(renderer, view_rect, scale, target);
let floating = self.floating.render_elements(
renderer,
view_rect,
scale,
target,
floating_focus_ring,
);
floating.into_iter().map(WorkspaceRenderElement::from)
});