aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2025-11-24 15:59:07 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2025-11-24 16:17:12 +0300
commit45b45ac29d654c0e6759ab996c69dfde40053536 (patch)
tree171852de830d18c23ff30b43386ee128a6f2552f /src
parent9eeedff6295d17dd44594e2e8bcc1911f1535989 (diff)
downloadniri-45b45ac29d654c0e6759ab996c69dfde40053536.tar.gz
niri-45b45ac29d654c0e6759ab996c69dfde40053536.tar.bz2
niri-45b45ac29d654c0e6759ab996c69dfde40053536.zip
layout/tests: Amend check for window-rule tests
This check doesn't handle tabbed columns properly (it should find and take the fixed height tile's height); for now just gate it on is_tabbed.
Diffstat (limited to 'src')
-rw-r--r--src/layout/scrolling.rs3
-rw-r--r--src/layout/tests.rs39
2 files changed, 41 insertions, 1 deletions
diff --git a/src/layout/scrolling.rs b/src/layout/scrolling.rs
index 6e819ea4..ee4d1ee9 100644
--- a/src/layout/scrolling.rs
+++ b/src/layout/scrolling.rs
@@ -5399,7 +5399,8 @@ impl<W: LayoutElement> Column<W> {
tile.tile_height_for_window_height(f64::from(requested_size.h));
let min_tile_height = f64::max(1., tile.min_size_nonfullscreen().h);
- if self.pending_sizing_mode().is_normal()
+ if !is_tabbed
+ && self.pending_sizing_mode().is_normal()
&& self.scale.round() == self.scale
&& working_size.h.round() == working_size.h
&& gaps.round() == gaps
diff --git a/src/layout/tests.rs b/src/layout/tests.rs
index 1942a11f..96491800 100644
--- a/src/layout/tests.rs
+++ b/src/layout/tests.rs
@@ -3635,6 +3635,45 @@ fn move_window_to_workspace_maximize_and_fullscreen() {
assert_eq!(win.pending_sizing_mode(), SizingMode::Normal);
}
+#[test]
+fn tabs_with_different_border() {
+ let ops = [
+ Op::AddOutput(1),
+ Op::AddWindow {
+ params: TestWindowParams {
+ rules: Some(ResolvedWindowRules {
+ border: niri_config::BorderRule {
+ on: true,
+ ..Default::default()
+ },
+ ..ResolvedWindowRules::default()
+ }),
+ ..TestWindowParams::new(2)
+ },
+ },
+ Op::SwitchPresetWindowHeight { id: None },
+ Op::ToggleColumnTabbedDisplay,
+ Op::AddWindow {
+ params: TestWindowParams::new(3),
+ },
+ Op::ConsumeOrExpelWindowLeft { id: None },
+ ];
+
+ let options = Options {
+ layout: niri_config::Layout {
+ struts: Struts {
+ left: FloatOrInt(0.),
+ right: FloatOrInt(0.),
+ top: FloatOrInt(20000.),
+ bottom: FloatOrInt(0.),
+ },
+ ..Default::default()
+ },
+ ..Default::default()
+ };
+ check_ops_with_options(options, ops);
+}
+
fn parent_id_causes_loop(layout: &Layout<TestWindow>, id: usize, mut parent_id: usize) -> bool {
if parent_id == id {
return true;