diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/layout/scrolling.rs | 8 | ||||
| -rw-r--r-- | src/window/mod.rs | 9 |
2 files changed, 16 insertions, 1 deletions
diff --git a/src/layout/scrolling.rs b/src/layout/scrolling.rs index 9be308e6..b9799ce4 100644 --- a/src/layout/scrolling.rs +++ b/src/layout/scrolling.rs @@ -3253,6 +3253,12 @@ impl<W: LayoutElement> Column<W> { ) -> Self { let options = tile.options.clone(); + let display_mode = tile + .window() + .rules() + .default_column_display + .unwrap_or(options.default_column_display); + let mut rv = Self { tiles: vec![], data: vec![], @@ -3261,7 +3267,7 @@ impl<W: LayoutElement> Column<W> { preset_width_idx: None, is_full_width, is_fullscreen: false, - display_mode: options.default_column_display, + display_mode, move_animation: None, view_size, working_area, diff --git a/src/window/mod.rs b/src/window/mod.rs index cc681010..ec0f7150 100644 --- a/src/window/mod.rs +++ b/src/window/mod.rs @@ -4,6 +4,7 @@ use niri_config::{ BlockOutFrom, BorderRule, CornerRadius, FloatingPosition, Match, PresetSize, ShadowRule, WindowRule, }; +use niri_ipc::ColumnDisplay; use smithay::reexports::wayland_protocols::xdg::shell::server::xdg_toplevel; use smithay::utils::{Logical, Size}; use smithay::wayland::compositor::with_states; @@ -43,6 +44,9 @@ pub struct ResolvedWindowRules { /// - `Some(Some(height))`: set to a particular height. pub default_height: Option<Option<PresetSize>>, + /// Default column display for this window. + pub default_column_display: Option<ColumnDisplay>, + /// Default floating position for this window. pub default_floating_position: Option<FloatingPosition>, @@ -147,6 +151,7 @@ impl ResolvedWindowRules { Self { default_width: None, default_height: None, + default_column_display: None, default_floating_position: None, open_on_output: None, open_on_workspace: None, @@ -237,6 +242,10 @@ impl ResolvedWindowRules { resolved.default_height = Some(x.0); } + if let Some(x) = rule.default_column_display { + resolved.default_column_display = Some(x); + } + if let Some(x) = rule.default_floating_position { resolved.default_floating_position = Some(x); } |
