fix(tab): do not crash when only floating panes are left (#1266)

This commit is contained in:
Aram Drevekenin 2022-03-24 17:19:09 +01:00 committed by GitHub
parent c53b3235c8
commit 509f236023
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 1 deletions

View file

@ -429,7 +429,7 @@ impl Screen {
let size = self.size; let size = self.size;
let overlay = self.overlay.clone(); let overlay = self.overlay.clone();
for (tab_index, tab) in &mut self.tabs { for (tab_index, tab) in &mut self.tabs {
if tab.has_selectable_panes() { if tab.has_selectable_tiled_panes() {
let vte_overlay = overlay.generate_overlay(size); let vte_overlay = overlay.generate_overlay(size);
tab.render(&mut output, Some(vte_overlay)); tab.render(&mut output, Some(vte_overlay));
} else { } else {

View file

@ -1035,6 +1035,10 @@ impl Tab {
.filter(|(_, p)| p.selectable()); .filter(|(_, p)| p.selectable());
selectable_tiled_panes.count() > 0 || selectable_floating_panes.count() > 0 selectable_tiled_panes.count() > 0 || selectable_floating_panes.count() > 0
} }
pub fn has_selectable_tiled_panes(&self) -> bool {
let selectable_tiled_panes = self.tiled_panes.get_panes().filter(|(_, p)| p.selectable());
selectable_tiled_panes.count() > 0
}
pub fn resize_whole_tab(&mut self, new_screen_size: Size) { pub fn resize_whole_tab(&mut self, new_screen_size: Size) {
self.floating_panes.resize(new_screen_size); self.floating_panes.resize(new_screen_size);
self.tiled_panes.resize(new_screen_size); self.tiled_panes.resize(new_screen_size);