diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-04-24 22:17:53 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-04-24 22:17:53 +0400 |
| commit | fd6c8c7790ae4e7dca1f242263f41411a1bab96e (patch) | |
| tree | b53b04dbef2e934d2b9fc25346fbfcb1c524714c /src/layout | |
| parent | 3e598c565e6e8ad4c34e93aec9a49e60d51d730e (diff) | |
| download | niri-fd6c8c7790ae4e7dca1f242263f41411a1bab96e.tar.gz niri-fd6c8c7790ae4e7dca1f242263f41411a1bab96e.tar.bz2 niri-fd6c8c7790ae4e7dca1f242263f41411a1bab96e.zip | |
Implement focus-ring window rule
Diffstat (limited to 'src/layout')
| -rw-r--r-- | src/layout/tile.rs | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/layout/tile.rs b/src/layout/tile.rs index 4778db69..7294cc05 100644 --- a/src/layout/tile.rs +++ b/src/layout/tile.rs @@ -109,11 +109,12 @@ impl<W: LayoutElement> Tile<W> { pub fn new(window: W, options: Rc<Options>) -> Self { let rules = window.rules(); let border_config = rules.border.resolve_against(options.border); + let focus_ring_config = rules.focus_ring.resolve_against(options.focus_ring.into()); Self { window, border: FocusRing::new(border_config.into()), - focus_ring: FocusRing::new(options.focus_ring), + focus_ring: FocusRing::new(focus_ring_config.into()), is_fullscreen: false, // FIXME: up-to-date fullscreen right away, but we need size. fullscreen_backdrop: SolidColorBuffer::new((0, 0), [0., 0., 0., 1.]), fullscreen_size: Default::default(), @@ -131,7 +132,11 @@ impl<W: LayoutElement> Tile<W> { let border_config = rules.border.resolve_against(self.options.border); self.border.update_config(border_config.into()); - self.focus_ring.update_config(options.focus_ring); + let focus_ring_config = rules + .focus_ring + .resolve_against(self.options.focus_ring.into()); + self.focus_ring.update_config(focus_ring_config.into()); + self.options = options; } @@ -175,6 +180,10 @@ impl<W: LayoutElement> Tile<W> { let rules = self.window.rules(); let border_config = rules.border.resolve_against(self.options.border); self.border.update_config(border_config.into()); + let focus_ring_config = rules + .focus_ring + .resolve_against(self.options.focus_ring.into()); + self.focus_ring.update_config(focus_ring_config.into()); } pub fn advance_animations(&mut self, current_time: Duration, is_active: bool) { |
