Add is-focused window rule matcher

This commit is contained in:
Ivan Molodetskikh
2024-03-23 16:16:52 +04:00
parent d65446421f
commit 6ec65bc0d6
5 changed files with 67 additions and 6 deletions
+18
View File
@@ -706,6 +706,24 @@ impl State {
focus
);
// Tell the windows their new focus state for window rule purposes.
if let KeyboardFocus::Layout {
surface: Some(surface),
} = &self.niri.keyboard_focus
{
if let Some((mapped, _)) = self.niri.layout.find_window_and_output_mut(surface) {
mapped.set_is_focused(false);
}
}
if let KeyboardFocus::Layout {
surface: Some(surface),
} = &focus
{
if let Some((mapped, _)) = self.niri.layout.find_window_and_output_mut(surface) {
mapped.set_is_focused(true);
}
}
if let Some(grab) = self.niri.popup_grab.as_mut() {
if Some(&grab.root) != focus.surface() {
trace!(