diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-12-29 11:04:08 +0300 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-12-30 20:12:37 +0300 |
| commit | be05b66ac323845fb65fe87384b5a8aae0e1fd18 (patch) | |
| tree | dec5d8c3ca847e2bb27369b628fa662f32190ba1 /src/layout/workspace.rs | |
| parent | d1998ae3fa28d8c7034f0b3ba188c355fc146e5c (diff) | |
| download | niri-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.rs | 17 |
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) }); |
