diff --git a/src/canvas.rs b/src/canvas.rs index 9c598567..5f243852 100644 --- a/src/canvas.rs +++ b/src/canvas.rs @@ -386,9 +386,18 @@ impl Painter { self.draw_basic_cpu(&mut f, app_state, vertical_chunks[0], 1); self.draw_basic_memory(&mut f, app_state, middle_chunks[0], 2); self.draw_basic_network(&mut f, app_state, middle_chunks[1], 3); - self.draw_basic_table_arrows(&mut f, app_state, vertical_chunks[3]); if let Some(basic_table_widget_state) = &app_state.basic_table_widget_state { let widget_id = basic_table_widget_state.currently_displayed_widget_id; + + if let Some(current_table) = app_state.widget_map.get(&widget_id) { + self.draw_basic_table_arrows( + &mut f, + app_state, + vertical_chunks[3], + current_table, + ); + } + match basic_table_widget_state.currently_displayed_widget_type { Disk => self.draw_disk_table( &mut f, diff --git a/src/canvas/widgets/basic_table_arrows.rs b/src/canvas/widgets/basic_table_arrows.rs index 6031aa82..abfb1126 100644 --- a/src/canvas/widgets/basic_table_arrows.rs +++ b/src/canvas/widgets/basic_table_arrows.rs @@ -1,7 +1,10 @@ use std::cmp::max; use crate::{ - app::{layout_manager::BottomWidgetType, App}, + app::{ + layout_manager::{BottomWidget, BottomWidgetType}, + App, + }, canvas::Painter, }; @@ -14,19 +17,18 @@ use tui::{ pub trait BasicTableArrows { fn draw_basic_table_arrows( - &self, f: &mut Frame<'_, B>, app_state: &mut App, draw_loc: Rect, + &self, f: &mut Frame<'_, B>, app_state: &App, draw_loc: Rect, current_table: &BottomWidget, ); } impl BasicTableArrows for Painter { fn draw_basic_table_arrows( - &self, f: &mut Frame<'_, B>, app_state: &mut App, draw_loc: Rect, + &self, f: &mut Frame<'_, B>, app_state: &App, draw_loc: Rect, current_table: &BottomWidget, ) { // Effectively a paragraph with a ton of spacing let (left_table, right_table) = ( { - app_state - .current_widget + current_table .left_neighbour .map(|left_widget_id| { app_state @@ -38,8 +40,7 @@ impl BasicTableArrows for Painter { .unwrap_or_else(|| &BottomWidgetType::Temp) }, { - app_state - .current_widget + current_table .right_neighbour .map(|right_widget_id| { app_state