aboutsummaryrefslogtreecommitdiff
path: root/src/layout/workspace.rs
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-12-29 11:04:08 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2024-12-30 20:12:37 +0300
commitbe05b66ac323845fb65fe87384b5a8aae0e1fd18 (patch)
treedec5d8c3ca847e2bb27369b628fa662f32190ba1 /src/layout/workspace.rs
parentd1998ae3fa28d8c7034f0b3ba188c355fc146e5c (diff)
downloadniri-be05b66ac323845fb65fe87384b5a8aae0e1fd18.tar.gz
niri-be05b66ac323845fb65fe87384b5a8aae0e1fd18.tar.bz2
niri-be05b66ac323845fb65fe87384b5a8aae0e1fd18.zip
Hide focus ring for unfocused layout and under interactive move
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)
});