aboutsummaryrefslogtreecommitdiff
path: root/src/handlers
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-05-16 11:43:13 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2024-05-16 12:27:09 +0400
commitcbfc682f9abc9b4c02ea3c0f63a4403d037f14a4 (patch)
tree8075783f9bdae04b3327e61ed613ebd8f4862896 /src/handlers
parentc64d9e5223a4a19fa718dc5a0b3e74dd6ee3b0e0 (diff)
downloadniri-cbfc682f9abc9b4c02ea3c0f63a4403d037f14a4.tar.gz
niri-cbfc682f9abc9b4c02ea3c0f63a4403d037f14a4.tar.bz2
niri-cbfc682f9abc9b4c02ea3c0f63a4403d037f14a4.zip
Implement at-startup window rule
Diffstat (limited to 'src/handlers')
-rw-r--r--src/handlers/xdg_shell.rs16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/handlers/xdg_shell.rs b/src/handlers/xdg_shell.rs
index 30df1d5f..879bd1b0 100644
--- a/src/handlers/xdg_shell.rs
+++ b/src/handlers/xdg_shell.rs
@@ -581,8 +581,11 @@ impl State {
};
let config = self.niri.config.borrow();
- let rules =
- ResolvedWindowRules::compute(&config.window_rules, WindowRef::Unmapped(unmapped));
+ let rules = ResolvedWindowRules::compute(
+ &config.window_rules,
+ WindowRef::Unmapped(unmapped),
+ self.niri.is_at_startup,
+ );
let Unmapped { window, state } = unmapped;
@@ -876,8 +879,11 @@ impl State {
let window_rules = &config.window_rules;
if let Some(unmapped) = self.niri.unmapped_windows.get_mut(toplevel.wl_surface()) {
- let new_rules =
- ResolvedWindowRules::compute(window_rules, WindowRef::Unmapped(unmapped));
+ let new_rules = ResolvedWindowRules::compute(
+ window_rules,
+ WindowRef::Unmapped(unmapped),
+ self.niri.is_at_startup,
+ );
if let InitialConfigureState::Configured { rules, .. } = &mut unmapped.state {
*rules = new_rules;
}
@@ -886,7 +892,7 @@ impl State {
.layout
.find_window_and_output_mut(toplevel.wl_surface())
{
- if mapped.recompute_window_rules(window_rules) {
+ if mapped.recompute_window_rules(window_rules, self.niri.is_at_startup) {
drop(config);
let output = output.cloned();
let window = mapped.window.clone();