fix(tab-bar): don't crash at small widths

This commit is contained in:
Brooks J Rady 2021-08-28 21:41:14 +01:00
parent 4af159574c
commit e54dfab40f
2 changed files with 12 additions and 11 deletions

View file

@ -48,10 +48,7 @@ fn populate_tabs_in_tab_line(
fn left_more_message(tab_count_to_the_left: usize, palette: Palette, separator: &str) -> LinePart {
if tab_count_to_the_left == 0 {
return LinePart {
part: String::new(),
len: 0,
};
return LinePart::default();
}
let more_text = if tab_count_to_the_left < 10000 {
format!(" ← +{} ", tab_count_to_the_left)
@ -81,10 +78,7 @@ fn right_more_message(
separator: &str,
) -> LinePart {
if tab_count_to_the_right == 0 {
return LinePart {
part: String::new(),
len: 0,
};
return LinePart::default();
};
let more_text = if tab_count_to_the_right < 10000 {
format!(" +{}", tab_count_to_the_right)
@ -118,12 +112,16 @@ fn add_previous_tabs_msg(
while get_current_title_len(tabs_to_render)
+ left_more_message(tabs_before_active.len(), palette, separator).len
>= cols
&& !tabs_to_render.is_empty()
{
tabs_before_active.push(tabs_to_render.remove(0));
}
let left_more_message = left_more_message(tabs_before_active.len(), palette, separator);
if left_more_message.len <= cols {
title_bar.push(left_more_message);
}
}
fn add_next_tabs_msg(
tabs_after_active: &mut Vec<LinePart>,
@ -135,12 +133,15 @@ fn add_next_tabs_msg(
while get_current_title_len(title_bar)
+ right_more_message(tabs_after_active.len(), palette, separator).len
>= cols
&& !title_bar.is_empty()
{
tabs_after_active.insert(0, title_bar.pop().unwrap());
}
let right_more_message = right_more_message(tabs_after_active.len(), palette, separator);
if right_more_message.len < cols {
title_bar.push(right_more_message);
}
}
fn tab_line_prefix(session_name: Option<&str>, palette: Palette, cols: usize) -> Vec<LinePart> {
let prefix_text = " Zellij ".to_string();

View file

@ -6,7 +6,7 @@ use zellij_tile::prelude::*;
use crate::line::tab_line;
use crate::tab::tab_style;
#[derive(Debug)]
#[derive(Debug, Default)]
pub struct LinePart {
part: String,
len: usize,