aboutsummaryrefslogtreecommitdiff
path: root/src/window
diff options
context:
space:
mode:
Diffstat (limited to 'src/window')
-rw-r--r--src/window/mod.rs12
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);
}