diff options
| author | Brooks J Rady <b.j.rady@gmail.com> | 2021-01-05 22:41:23 +0000 |
|---|---|---|
| committer | Brooks J Rady <b.j.rady@gmail.com> | 2021-01-05 22:41:23 +0000 |
| commit | eb0f3b02856f279f44ca54de8ba0f5f2dec6a017 (patch) | |
| tree | 0c40b52ec2cafc3a3cd22dd2da851a78ea2b023a /src/layout.rs | |
| parent | Merge branch 'main' into wasm-launchable (diff) | |
| download | sl0ppij-eb0f3b02856f279f44ca54de8ba0f5f2dec6a017.tar.gz sl0ppij-eb0f3b02856f279f44ca54de8ba0f5f2dec6a017.tar.xz sl0ppij-eb0f3b02856f279f44ca54de8ba0f5f2dec6a017.zip | |
Very borken
Diffstat (limited to 'src/layout.rs')
| -rw-r--r-- | src/layout.rs | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/src/layout.rs b/src/layout.rs index 03a1cf1f..efe7bae6 100644 --- a/src/layout.rs +++ b/src/layout.rs @@ -61,8 +61,11 @@ fn split_space_to_parts_horizontally( split_parts } -fn split_space(space_to_split: &PositionAndSize, layout: &Layout) -> Vec<PositionAndSize> { - let mut pane_positions: Vec<PositionAndSize> = vec![]; +fn split_space( + space_to_split: &PositionAndSize, + layout: &Layout, +) -> Vec<(Layout, PositionAndSize)> { + let mut pane_positions = Vec::new(); let percentages: Vec<u8> = layout .parts .iter() @@ -88,7 +91,7 @@ fn split_space(space_to_split: &PositionAndSize, layout: &Layout) -> Vec<Positio let mut part_positions = split_space(&part_position_and_size, part); pane_positions.append(&mut part_positions); } else { - pane_positions.push(*part_position_and_size); + pane_positions.push((part.clone(), *part_position_and_size)); // FIXME: Probably doesn't need to be cloned } } pane_positions @@ -165,17 +168,20 @@ impl Layout { panic!("The total percent for each part should equal 100."); } } - pub fn total_panes(&self) -> usize { + + pub fn total_terminal_panes(&self) -> usize { let mut total_panes = 0; total_panes += self.parts.len(); for part in self.parts.iter() { - total_panes += part.total_panes(); + if part.plugin.is_none() { + total_panes += part.total_terminal_panes(); + } } total_panes } // FIXME: I probably shouldn't exist, much less with PathBuf (use &Path) - #[cfg(feature = "wasm-wip")] + pub fn list_plugins(&self) -> Vec<&PathBuf> { let mut plugins: Vec<_> = self.parts.iter().flat_map(Layout::list_plugins).collect(); if let Some(path) = &self.plugin { @@ -184,7 +190,10 @@ impl Layout { plugins } - pub fn position_panes_in_space(&self, space: &PositionAndSize) -> Vec<PositionAndSize> { + pub fn position_panes_in_space( + &self, + space: &PositionAndSize, + ) -> Vec<(Layout, PositionAndSize)> { split_space(space, &self) } } |
