diff --git a/src/components/select_branch.rs b/src/components/select_branch.rs index c0ea6e4b20..7779da7620 100644 --- a/src/components/select_branch.rs +++ b/src/components/select_branch.rs @@ -45,14 +45,20 @@ impl DrawableComponent for SelectBranchComponent { // Render a scrolllist of branches inside a box if self.visible { - const SIZE: (u16, u16) = (50, 20); - let scroll_threshold = SIZE.1 / 3; + const PERCENT_SIZE: (u16, u16) = (60, 25); + const MIN_SIZE: (u16, u16) = (50, 20); + + let area = ui::centered_rect( + PERCENT_SIZE.0, + PERCENT_SIZE.1, + f.size(), + ); + let area = ui::rect_min(MIN_SIZE.0, MIN_SIZE.1, area); + + let scroll_threshold = area.height / 3; let scroll = self.selection.saturating_sub(scroll_threshold); - let area = - ui::centered_rect_absolute(SIZE.0, SIZE.1, f.size()); - f.render_widget(Clear, area); f.render_widget( Block::default() @@ -275,15 +281,17 @@ impl SelectBranchComponent { theme: &SharedTheme, width_available: u16, ) -> Result { - const BRANCH_NAME_LENGTH: usize = 15; const COMMIT_HASH_LENGTH: usize = 8; const IS_HEAD_STAR_LENGTH: usize = 3; // "* " const THREE_DOTS_LENGTH: usize = 3; // "..." + // branch name = 30% of area size + let branch_name_length: usize = + width_available as usize * 30 / 100; // commit message takes up the remaining width let commit_message_length: usize = (width_available as usize) .saturating_sub(COMMIT_HASH_LENGTH) - .saturating_sub(BRANCH_NAME_LENGTH) + .saturating_sub(branch_name_length) .saturating_sub(IS_HEAD_STAR_LENGTH) .saturating_sub(THREE_DOTS_LENGTH); let mut txt = Vec::new(); @@ -301,9 +309,9 @@ impl SelectBranchComponent { } let mut branch_name = displaybranch.name.clone(); - if branch_name.len() > BRANCH_NAME_LENGTH { + if branch_name.len() > branch_name_length { branch_name.truncate( - BRANCH_NAME_LENGTH + branch_name_length .saturating_sub(THREE_DOTS_LENGTH), ); branch_name += "..."; @@ -322,7 +330,7 @@ impl SelectBranchComponent { format!( ">{:w$} ", branch_name, - w = BRANCH_NAME_LENGTH + w = branch_name_length ), theme.commit_author(true), ), @@ -348,7 +356,7 @@ impl SelectBranchComponent { format!( " {:w$} ", branch_name, - w = BRANCH_NAME_LENGTH + w = branch_name_length ), theme.commit_author(false), ),