aboutsummaryrefslogtreecommitdiff
path: root/src/layout
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-04-24 22:17:53 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2024-04-24 22:17:53 +0400
commitfd6c8c7790ae4e7dca1f242263f41411a1bab96e (patch)
treeb53b04dbef2e934d2b9fc25346fbfcb1c524714c /src/layout
parent3e598c565e6e8ad4c34e93aec9a49e60d51d730e (diff)
downloadniri-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.rs13
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) {