diff options
Diffstat (limited to 'src/window')
| -rw-r--r-- | src/window/mod.rs | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/window/mod.rs b/src/window/mod.rs index 1cf576df..868620f0 100644 --- a/src/window/mod.rs +++ b/src/window/mod.rs @@ -1,6 +1,8 @@ use std::cmp::{max, min}; -use niri_config::{BlockOutFrom, BorderRule, CornerRadius, Match, PresetSize, WindowRule}; +use niri_config::{ + BlockOutFrom, BorderRule, CornerRadius, FoIPosition, Match, PresetSize, WindowRule, +}; use smithay::reexports::wayland_protocols::xdg::shell::server::xdg_toplevel; use smithay::utils::{Logical, Size}; use smithay::wayland::compositor::with_states; @@ -41,6 +43,9 @@ pub struct ResolvedWindowRules { /// - `Some(Some(width))`: set to a particular height. pub default_height: Option<Option<PresetSize>>, + /// Default floating position for this window. + pub default_floating_position: Option<FoIPosition>, + /// Output to open this window on. pub open_on_output: Option<String>, @@ -137,6 +142,7 @@ impl ResolvedWindowRules { Self { default_width: None, default_height: None, + default_floating_position: None, open_on_output: None, open_on_workspace: None, open_maximized: None, @@ -219,6 +225,10 @@ impl ResolvedWindowRules { resolved.default_height = Some(x.0); } + if let Some(x) = rule.default_floating_position { + resolved.default_floating_position = Some(x); + } + if let Some(x) = rule.open_on_output.as_deref() { open_on_output = Some(x); } |
