aboutsummaryrefslogtreecommitdiff
path: root/src/layout/workspace.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/layout/workspace.rs')
-rw-r--r--src/layout/workspace.rs17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/layout/workspace.rs b/src/layout/workspace.rs
index aef7203b..991e7e42 100644
--- a/src/layout/workspace.rs
+++ b/src/layout/workspace.rs
@@ -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)
});