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