fix(tab-bar): don't crash at small widths
This commit is contained in:
parent
4af159574c
commit
e54dfab40f
2 changed files with 12 additions and 11 deletions
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue