summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAram Drevekenin <aram@poor.dev>2023-02-14 17:35:16 +0100
committerAram Drevekenin <aram@poor.dev>2023-02-14 17:35:16 +0100
commit5dd319c8528ee5f25580baee94596e639513f3b9 (patch)
tree1cba209ab3deefff48508d599f7a344f097ffd11
parent84c3e9394bfb3c11ff395fa58aa2385aa55eb9ae (diff)
fix(ui): stacked panes without pane frames
-rw-r--r--zellij-server/src/panes/floating_panes/mod.rs3
-rw-r--r--zellij-server/src/panes/plugin_pane.rs12
-rw-r--r--zellij-server/src/panes/terminal_pane.rs7
-rw-r--r--zellij-server/src/panes/tiled_panes/mod.rs26
-rw-r--r--zellij-server/src/tab/unit/snapshots/zellij_server__tab__tab_integration_tests__swap_tiled_layout_with_stacked_children_and_no_pane_frames.snap26
-rw-r--r--zellij-server/src/tab/unit/tab_integration_tests.rs156
-rw-r--r--zellij-server/src/ui/boundaries.rs13
-rw-r--r--zellij-server/src/ui/pane_boundaries_frame.rs13
-rw-r--r--zellij-server/src/ui/pane_contents_and_ui.rs5
-rw-r--r--zellij-utils/src/pane_size.rs8
10 files changed, 204 insertions, 65 deletions
diff --git a/zellij-server/src/panes/floating_panes/mod.rs b/zellij-server/src/panes/floating_panes/mod.rs
index 73388f27b..77abda645 100644
--- a/zellij-server/src/panes/floating_panes/mod.rs
+++ b/zellij-server/src/panes/floating_panes/mod.rs
@@ -353,7 +353,8 @@ impl FloatingPanes {
multiple_users_exist_in_session,
Some(z_index + 1), // +1 because 0 is reserved for non-floating panes
false,
- false
+ false,
+ true,
);
for client_id in &connected_clients {
let client_mode = self
diff --git a/zellij-server/src/panes/plugin_pane.rs b/zellij-server/src/panes/plugin_pane.rs
index 50ce6043e..841104214 100644
--- a/zellij-server/src/panes/plugin_pane.rs
+++ b/zellij-server/src/panes/plugin_pane.rs
@@ -226,6 +226,11 @@ impl Pane for PluginPane {
if self.should_render.get(&client_id).copied().unwrap_or(false) {
let content_x = self.get_content_x();
let content_y = self.get_content_y();
+ let rows = self.get_content_rows();
+ let columns = self.get_content_columns();
+ if rows < 1 || columns < 1 {
+ return Ok(None);
+ }
if let Some(grid) = self.grids.get_mut(&client_id) {
match grid.render(content_x, content_y, &self.style) {
Ok(rendered_assets) => {
@@ -269,8 +274,13 @@ impl Pane for PluginPane {
self.pane_name.clone()
};
+ let mut frame_geom = self.current_geom();
+ if !frame_params.should_draw_pane_frames {
+ // in this case the width of the frame needs not include the pane corners
+ frame_geom.cols.set_inner(frame_geom.cols.as_usize().saturating_sub(1));
+ }
let mut frame = PaneFrame::new(
- self.current_geom().into(),
+ frame_geom.into(),
grid.scrollback_position_and_length(),
pane_title,
frame_params,
diff --git a/zellij-server/src/panes/terminal_pane.rs b/zellij-server/src/panes/terminal_pane.rs
index 065e99c00..960476d5e 100644
--- a/zellij-server/src/panes/terminal_pane.rs
+++ b/zellij-server/src/panes/terminal_pane.rs
@@ -359,8 +359,13 @@ impl Pane for TerminalPane {
self.pane_name.clone()
};
+ let mut frame_geom = self.current_geom();
+ if !frame_params.should_draw_pane_frames {
+ // in this case the width of the frame needs not include the pane corners
+ frame_geom.cols.set_inner(frame_geom.cols.as_usize().saturating_sub(1));
+ }
let mut frame = PaneFrame::new(
- self.current_geom().into(),
+ frame_geom.into(),
self.grid.scrollback_position_and_length(),
pane_title,
frame_params,
diff --git a/zellij-server/src/panes/tiled_panes/mod.rs b/zellij-server/src/panes/tiled_panes/mod.rs
index f4619ad66..dca3afd84 100644
--- a/zellij-server/src/panes/tiled_panes/mod.rs
+++ b/zellij-server/src/panes/tiled_panes/mod.rs
@@ -283,7 +283,12 @@ impl TiledPanes {
let position_and_size = pane.current_geom();
let (pane_columns_offset, pane_rows_offset) =
pane_content_offset(&position_and_size, &viewport);
- pane.set_content_offset(Offset::shift(pane_rows_offset, pane_columns_offset));
+ if !draw_pane_frames && pane.current_geom().is_stacked {
+ // stacked panes should always leave 1 top row for a title
+ pane.set_content_offset(Offset::shift_right_and_top(pane_columns_offset, 1));
+ } else {
+ pane.set_content_offset(Offset::shift(pane_rows_offset, pane_columns_offset));
+ }
}
resize_pty!(pane, self.os_api, self.senders).unwrap();
@@ -533,6 +538,8 @@ impl TiledPanes {
if !self.panes_to_hide.contains(&pane.pid()) {
let pane_is_stacked_under = stacked_pane_ids_under_flexible_pane.contains(&pane.pid());
let pane_is_stacked_over = stacked_pane_ids_over_flexible_pane.contains(&pane.pid());
+ let should_draw_pane_frames = self.draw_pane_frames;
+ let pane_is_stacked = pane.current_geom().is_stacked;
let mut pane_contents_and_ui = PaneContentsAndUi::new(
pane,
output,
@@ -542,6 +549,7 @@ impl TiledPanes {
None,
pane_is_stacked_under,
pane_is_stacked_over,
+ should_draw_pane_frames,
);
for client_id in &connected_clients {
let client_mode = self
@@ -561,6 +569,22 @@ impl TiledPanes {
pane_contents_and_ui
.render_pane_frame(*client_id, client_mode, self.session_is_mirrored)
.with_context(err_context)?;
+ } else if pane_is_stacked {
+ // if we have no pane frames but the pane is stacked, we need to render its
+ // frame which will amount to only rendering the title line
+ pane_contents_and_ui
+ .render_pane_frame(*client_id, client_mode, self.session_is_mirrored)
+ .with_context(err_context)?;
+ // we also need to render its boundaries as normal
+ let boundaries = client_id_to_boundaries
+ .entry(*client_id)
+ .or_insert_with(|| Boundaries::new(*self.viewport.borrow()));
+ pane_contents_and_ui.render_pane_boundaries(
+ *client_id,
+ client_mode,
+ boundaries,
+ self.session_is_mirrored,
+ );
} else {
let boundaries = client_id_to_boundaries
.entry(*client_id)
diff --git a/zellij-server/src/tab/unit/snapshots/zellij_server__tab__tab_integration_tests__swap_tiled_layout_with_stacked_children_and_no_pane_frames.snap b/zellij-server/src/tab/unit/snapshots/zellij_server__tab__tab_integration_tests__swap_tiled_layout_with_stacked_children_and_no_pane_frames.snap
new file mode 100644
index 000000000..7174f10a2
--- /dev/null
+++ b/zellij-server/src/tab/unit/snapshots/zellij_server__tab__tab_integration_tests__swap_tiled_layout_with_stacked_children_and_no_pane_frames.snap
@@ -0,0 +1,26 @@
+---
+source: zellij-server/src/tab/./unit/tab_integration_tests.rs
+assertion_line: 3204
+expression: snapshot
+---
+00 (C): ├─ Pane #2 ─────────────────────────────────────────────────
+01 (C): ├─ Pane #3 ─────────────────────────────────────────────────
+02 (C): ├─ Pane #4 ─────────────────────────────────────────────────
+03 (C): │
+04 (C): │
+05 (C): │
+06 (C): │
+07 (C): │
+08 (C): │
+09 (C): │
+10 (C): │
+11 (C): │
+12 (C): │
+13 (C): │
+14 (C): │
+15 (C): │
+16 (C): │
+17 (C): │
+18 (C): │
+19 (C): │
+
diff --git a/zellij-server/src/tab/unit/tab_integration_tests.rs b/zellij-server/src/tab/unit/tab_integration_tests.rs
index 172bda15a..73e266955 100644
--- a/zellij-server/src/tab/unit/tab_integration_tests.rs
+++ b/zellij-server/src/tab/unit/tab_integration_tests.rs
@@ -257,7 +257,8 @@ fn create_new_tab_with_swap_layouts(
Vec<(u32, Option<RunCommand>)>,
Vec<(u32, Option<RunCommand>)>,
HashMap<RunPluginLocation, Vec<u32>>
- )>
+ )>,
+ draw_pane_frames: bool,
) -> Tab {
set_session_name("test".into());
let index = 0;
@@ -271,7 +272,6 @@ fn create_new_tab_with_swap_layouts(
let max_panes = None;
let mode_info = default_mode;
let style = Style::default();
- let draw_pane_frames = true;
let auto_layout = true;
let client_id = 1;
let session_is_mirrored = true;
@@ -3002,7 +3002,7 @@ fn can_swap_tiled_layout_at_runtime() {
let layout = Layout::from_kdl(swap_layouts, "file_name.kdl".into(), None, None).unwrap();
let swap_tiled_layouts = layout.swap_tiled_layouts.clone();
let swap_floating_layouts = layout.swap_floating_layouts.clone();
- let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None);
+ let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None, true);
let new_pane_id_1 = PaneId::Terminal(2);
tab.new_pane(new_pane_id_1, None, None, Some(client_id))
@@ -3049,7 +3049,7 @@ fn can_swap_floating_layout_at_runtime() {
let layout = Layout::from_kdl(swap_layouts, "file_name.kdl".into(), None, None).unwrap();
let swap_floating_layouts = layout.swap_floating_layouts.clone();
let swap_tiled_layouts = layout.swap_tiled_layouts.clone();
- let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None);
+ let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None, true);
let new_pane_id_1 = PaneId::Terminal(2);
let new_pane_id_2 = PaneId::Terminal(3);
@@ -3098,7 +3098,7 @@ fn swapping_layouts_after_resize_snaps_to_current_layout() {
let layout = Layout::from_kdl(swap_layouts, "file_name.kdl".into(), None, None).unwrap();
let swap_tiled_layouts = layout.swap_tiled_layouts.clone();
let swap_floating_layouts = layout.swap_floating_layouts.clone();
- let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None);
+ let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None, true);
let new_pane_id_1 = PaneId::Terminal(2);
tab.new_pane(new_pane_id_1, None, None, Some(client_id))
@@ -3139,7 +3139,51 @@ fn swap_tiled_layout_with_stacked_children() {
let layout = Layout::from_kdl(swap_layouts, "file_name.kdl".into(), None, None).unwrap();
let swap_tiled_layouts = layout.swap_tiled_layouts.clone();
let swap_floating_layouts = layout.swap_floating_layouts.clone();
- let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None);
+ let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None, true);
+ let new_pane_id_1 = PaneId::Terminal(2);
+ let new_pane_id_2 = PaneId::Terminal(3);
+ let new_pane_id_3 = PaneId::Terminal(4);
+
+ tab.new_pane(new_pane_id_1, None, None, Some(client_id))
+ .unwrap();
+ tab.new_pane(new_pane_id_2, None, None, Some(client_id))
+ .unwrap();
+ tab.new_pane(new_pane_id_3, None, None, Some(client_id))
+ .unwrap();
+ tab.render(&mut output, None).unwrap();
+ let snapshot = take_snapshot(
+ output.serialize().unwrap().get(&client_id).unwrap(),
+ size.rows,
+ size.cols,
+ Palette::default(),
+ );
+ assert_snapshot!(snapshot);
+}
+
+#[test]
+fn swap_tiled_layout_with_stacked_children_and_no_pane_frames() {
+ let size = Size {
+ cols: 121,
+ rows: 20,
+ };
+ let client_id = 1;
+ let mut output = Output::default();
+ let swap_layouts = r#"
+ layout {
+ swap_tiled_layout {
+ tab {
+ pane split_direction="vertical" {
+ pane focus=true
+ pane { children stacked=true; }
+ }
+ }
+ }
+ }
+ "#;
+ let layout = Layout::from_kdl(swap_layouts, "file_name.kdl".into(), None, None).unwrap();
+ let swap_tiled_layouts = layout.swap_tiled_layouts.clone();
+ let swap_floating_layouts = layout.swap_floating_layouts.clone();
+ let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None, false);
let new_pane_id_1 = PaneId::Terminal(2);
let new_pane_id_2 = PaneId::Terminal(3);
let new_pane_id_3 = PaneId::Terminal(4);
@@ -3183,7 +3227,7 @@ fn move_focus_up_with_stacked_panes() {
let layout = Layout::from_kdl(swap_layouts, "file_name.kdl".into(), None, None).unwrap();
let swap_tiled_layouts = layout.swap_tiled_layouts.clone();
let swap_floating_layouts = layout.swap_floating_layouts.clone();
- let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None);
+ let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None, true);
let new_pane_id_1 = PaneId::Terminal(2);
let new_pane_id_2 = PaneId::Terminal(3);
let new_pane_id_3 = PaneId::Terminal(4);
@@ -3229,7 +3273,7 @@ fn move_focus_down_with_stacked_panes() {
let layout = Layout::from_kdl(swap_layouts, "file_name.kdl".into(), None, None).unwrap();
let swap_tiled_layouts = layout.swap_tiled_layouts.clone();
let swap_floating_layouts = layout.swap_floating_layouts.clone();
- let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None);
+ let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None, true);
let new_pane_id_1 = PaneId::Terminal(2);
let new_pane_id_2 = PaneId::Terminal(3);
let new_pane_id_3 = PaneId::Terminal(4);
@@ -3279,7 +3323,7 @@ fn move_focus_right_into_stacked_panes() {
let layout = Layout::from_kdl(swap_layouts, "file_name.kdl".into(), None, None).unwrap();
let swap_tiled_layouts = layout.swap_tiled_layouts.clone();
let swap_floating_layouts = layout.swap_floating_layouts.clone();
- let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None);
+ let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None, true);
for i in 0..12 {
let new_pane_id = i + 2;
tab.new_pane(PaneId::Terminal(new_pane_id), None, None, Some(client_id))
@@ -3333,7 +3377,7 @@ fn move_focus_left_into_stacked_panes() {
let layout = Layout::from_kdl(swap_layouts, "file_name.kdl".into(), None, None).unwrap();
let swap_tiled_layouts = layout.swap_tiled_layouts.clone();
let swap_floating_layouts = layout.swap_floating_layouts.clone();
- let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None);
+ let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None, true);
for i in 0..13 {
let new_pane_id = i + 2;
tab.new_pane(PaneId::Terminal(new_pane_id), None, None, Some(client_id))
@@ -3389,7 +3433,7 @@ fn move_focus_up_into_stacked_panes() {
let layout = Layout::from_kdl(swap_layouts, "file_name.kdl".into(), None, None).unwrap();
let swap_tiled_layouts = layout.swap_tiled_layouts.clone();
let swap_floating_layouts = layout.swap_floating_layouts.clone();
- let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None);
+ let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None, true);
for i in 0..4 {
let new_pane_id = i + 3;
tab.new_pane(PaneId::Terminal(new_pane_id), None, None, Some(client_id))
@@ -3446,7 +3490,7 @@ fn move_focus_down_into_stacked_panes() {
let layout = Layout::from_kdl(swap_layouts, "file_name.kdl".into(), None, None).unwrap();
let swap_tiled_layouts = layout.swap_tiled_layouts.clone();
let swap_floating_layouts = layout.swap_floating_layouts.clone();
- let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None);
+ let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None, true);
for i in 0..4 {
let new_pane_id = i + 3;
tab.new_pane(PaneId::Terminal(new_pane_id), None, None, Some(client_id))
@@ -3497,7 +3541,7 @@ fn close_main_stacked_pane() {
let layout = Layout::from_kdl(swap_layouts, "file_name.kdl".into(), None, None).unwrap();
let swap_tiled_layouts = layout.swap_tiled_layouts.clone();
let swap_floating_layouts = layout.swap_floating_layouts.clone();
- let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None);
+ let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None, true);
let new_pane_id_1 = PaneId::Terminal(2);
let new_pane_id_2 = PaneId::Terminal(3);
let new_pane_id_3 = PaneId::Terminal(4);
@@ -3542,7 +3586,7 @@ fn close_main_stacked_pane_in_mid_stack() {
let layout = Layout::from_kdl(swap_layouts, "file_name.kdl".into(), None, None).unwrap();
let swap_tiled_layouts = layout.swap_tiled_layouts.clone();
let swap_floating_layouts = layout.swap_floating_layouts.clone();
- let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None);
+ let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None, true);
let new_pane_id_1 = PaneId::Terminal(2);
let new_pane_id_2 = PaneId::Terminal(3);
let new_pane_id_3 = PaneId::Terminal(4);
@@ -3596,7 +3640,7 @@ fn close_one_liner_stacked_pane_below_main_pane() {
let layout = Layout::from_kdl(swap_layouts, "file_name.kdl".into(), None, None).unwrap();
let swap_tiled_layouts = layout.swap_tiled_layouts.clone();
let swap_floating_layouts = layout.swap_floating_layouts.clone();
- let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None);
+ let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None, true);
let new_pane_id_1 = PaneId::Terminal(2);
let new_pane_id_2 = PaneId::Terminal(3);
let new_pane_id_3 = PaneId::Terminal(4);
@@ -3651,7 +3695,7 @@ fn close_one_liner_stacked_pane_above_main_pane() {
let layout = Layout::from_kdl(swap_layouts, "file_name.kdl".into(), None, None).unwrap();
let swap_tiled_layouts = layout.swap_tiled_layouts.clone();
let swap_floating_layouts = layout.swap_floating_layouts.clone();
- let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None);
+ let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None, true);
let new_pane_id_1 = PaneId::Terminal(2);
let new_pane_id_2 = PaneId::Terminal(3);
let new_pane_id_3 = PaneId::Terminal(4);
@@ -3705,7 +3749,7 @@ fn can_increase_size_of_main_pane_in_stack_horizontally() {
let layout = Layout::from_kdl(swap_layouts, "file_name.kdl".into(), None, None).unwrap();
let swap_tiled_layouts = layout.swap_tiled_layouts.clone();
let swap_floating_layouts = layout.swap_floating_layouts.clone();
- let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None);
+ let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None, true);
let new_pane_id_1 = PaneId::Terminal(2);
let new_pane_id_2 = PaneId::Terminal(3);
let new_pane_id_3 = PaneId::Terminal(4);
@@ -3760,7 +3804,7 @@ fn can_increase_size_of_main_pane_in_stack_vertically() {
let layout = Layout::from_kdl(swap_layouts, "file_name.kdl".into(), None, None).unwrap();
let swap_tiled_layouts = layout.swap_tiled_layouts.clone();
let swap_floating_layouts = layout.swap_floating_layouts.clone();
- let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None);
+ let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None, true);
let new_pane_id_1 = PaneId::Terminal(2);
let new_pane_id_2 = PaneId::Terminal(3);
let new_pane_id_3 = PaneId::Terminal(4);
@@ -3815,7 +3859,7 @@ fn can_increase_size_of_main_pane_in_stack_non_directionally() {
let layout = Layout::from_kdl(swap_layouts, "file_name.kdl".into(), None, None).unwrap();
let swap_tiled_layouts = layout.swap_tiled_layouts.clone();
let swap_floating_layouts = layout.swap_floating_layouts.clone();
- let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None);
+ let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None, true);
let new_pane_id_1 = PaneId::Terminal(2);
let new_pane_id_2 = PaneId::Terminal(3);
let new_pane_id_3 = PaneId::Terminal(4);
@@ -3877,7 +3921,7 @@ fn increasing_size_of_main_pane_in_stack_horizontally_does_not_break_stack() {
let layout = Layout::from_kdl(swap_layouts, "file_name.kdl".into(), None, None).unwrap();
let swap_tiled_layouts = layout.swap_tiled_layouts.clone();
let swap_floating_layouts = layout.swap_floating_layouts.clone();
- let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None);
+ let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None, true);
let new_pane_id_1 = PaneId::Terminal(2);
let new_pane_id_2 = PaneId::Terminal(3);
let new_pane_id_3 = PaneId::Terminal(4);
@@ -3948,7 +3992,7 @@ fn can_increase_size_into_pane_stack_horizontally() {
let layout = Layout::from_kdl(swap_layouts, "file_name.kdl".into(), None, None).unwrap();
let swap_tiled_layouts = layout.swap_tiled_layouts.clone();
let swap_floating_layouts = layout.swap_floating_layouts.clone();
- let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None);
+ let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None, true);
let new_pane_id_1 = PaneId::Terminal(2);
let new_pane_id_2 = PaneId::Terminal(3);
let new_pane_id_3 = PaneId::Terminal(4);
@@ -4002,7 +4046,7 @@ fn can_increase_size_into_pane_stack_vertically() {
let layout = Layout::from_kdl(swap_layouts, "file_name.kdl".into(), None, None).unwrap();
let swap_tiled_layouts = layout.swap_tiled_layouts.clone();
let swap_floating_layouts = layout.swap_floating_layouts.clone();
- let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None);
+ let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None, true);
let new_pane_id_1 = PaneId::Terminal(2);
let new_pane_id_2 = PaneId::Terminal(3);
let new_pane_id_3 = PaneId::Terminal(4);
@@ -4058,7 +4102,7 @@ fn can_increase_size_into_pane_stack_non_directionally() {
let layout = Layout::from_kdl(swap_layouts, "file_name.kdl".into(), None, None).unwrap();
let swap_tiled_layouts = layout.swap_tiled_layouts.clone();
let swap_floating_layouts = layout.swap_floating_layouts.clone();
- let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None);
+ let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None, true);
let new_pane_id_1 = PaneId::Terminal(2);
let new_pane_id_2 = PaneId::Terminal(3);
let new_pane_id_3 = PaneId::Terminal(4);
@@ -4120,7 +4164,7 @@ fn increasing_size_into_main_pane_in_stack_horizontally_does_not_break_stack() {
let layout = Layout::from_kdl(swap_layouts, "file_name.kdl".into(), None, None).unwrap();
let swap_tiled_layouts = layout.swap_tiled_layouts.clone();
let swap_floating_layouts = layout.swap_floating_layouts.clone();
- let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None);
+ let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None, true);
let new_pane_id_1 = PaneId::Terminal(2);
let new_pane_id_2 = PaneId::Terminal(3);
let new_pane_id_3 = PaneId::Terminal(4);
@@ -4187,7 +4231,7 @@ fn decreasing_size_of_whole_tab_treats_stacked_panes_properly() {
let layout = Layout::from_kdl(swap_layouts, "file_name.kdl".into(), None, None).unwrap();
let swap_tiled_layouts = layout.swap_tiled_layouts.clone();
let swap_floating_layouts = layout.swap_floating_layouts.clone();
- let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None);
+ let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None, true);
let new_pane_id_1 = PaneId::Terminal(2);
let new_pane_id_2 = PaneId::Terminal(3);
let new_pane_id_3 = PaneId::Terminal(4);
@@ -4241,7 +4285,7 @@ fn increasing_size_of_whole_tab_treats_stacked_panes_properly() {
let layout = Layout::from_kdl(swap_layouts, "file_name.kdl".into(), None, None).unwrap();
let swap_tiled_layouts = layout.swap_tiled_layouts.clone();
let swap_floating_layouts = layout.swap_floating_layouts.clone();
- let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None);
+ let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_floating_layouts), None, true);
let new_pane_id_1 = PaneId::Terminal(2);
let new_pane_id_2 = PaneId::Terminal(3);
let new_pane_id_3 = PaneId::Terminal(4);
@@ -4300,7 +4344,7 @@ fn cannot_decrease_stack_size_beyond_minimum_height() {
let layout = Layout::from_kdl(swap_layouts, "file_name.kdl".into(), None, None).unwrap();
let swap_tiled_layouts = layout.swap_tiled_layouts.clone();
let swap_floating_layouts = layout.swap_floating_layouts.clone();
- let mut tab = create_new_tab_with_swap_layouts(size, ModeInfo::default(), (swap_tiled_layouts, swap_f