diff --git a/src/printer.rs b/src/printer.rs index 17cf20fa..19a97aa7 100644 --- a/src/printer.rs +++ b/src/printer.rs @@ -38,7 +38,7 @@ impl<'a> Printer<'a> { decorations.push(Box::new(LineChangesDecoration::new(&colors))); } - let panel_width: usize = + let mut panel_width: usize = decorations.len() + decorations.iter().fold(0, |a, x| a + x.width()); // The grid border decoration isn't added until after the panel_width calculation, since the @@ -48,6 +48,13 @@ impl<'a> Printer<'a> { decorations.push(Box::new(GridBorderDecoration::new(&colors))); } + // Disable the panel if the terminal is too small (i.e. can't fit 5 characters with the + // panel showing). + if config.term_width < (decorations.len() + decorations.iter().fold(0, |a, x| a + x.width())) + 5 { + decorations.clear(); + panel_width = 0; + } + // Create printer. Printer { panel_width,