From 3ebf5510ea7a6e0ea6796288a677fa7eccd346ac Mon Sep 17 00:00:00 2001 From: Manos Pitsidianakis Date: Wed, 10 Jul 2024 18:30:55 +0300 Subject: [PATCH] meli/state.rs: pass entire screen area when drawing overlay Let the widget decide how much area it needs instead of providing a limited subsection. On small screens it can lead to not enough space. Signed-off-by: Manos Pitsidianakis --- meli/src/state.rs | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/meli/src/state.rs b/meli/src/state.rs index ee59a645..5f3024e1 100644 --- a/meli/src/state.rs +++ b/meli/src/state.rs @@ -683,30 +683,16 @@ impl State { self.message_box.set_dirty(false); } - if !self.overlay.is_empty() && can_draw_above_screen { + if let (Some((_, overlay_widget)), true) = + (self.overlay.get_index_mut(0), can_draw_above_screen) + { let area: Area = self.screen.area(); - let overlay_area = area.center_inside(( - if self.screen.cols() / 3 > 30 { - self.screen.cols() / 3 - } else { - self.screen.cols() - }, - if self.screen.rows() / 5 > 10 { - self.screen.rows() / 5 - } else { - self.screen.rows() - }, - )); { let (grid, overlay_grid) = self.screen.grid_and_overlay_grid_mut(); overlay_grid.copy_area(grid, area, area); - self.overlay.get_index_mut(0).unwrap().1.draw( - overlay_grid, - overlay_area, - &mut self.context, - ); + overlay_widget.draw(overlay_grid, area, &mut self.context); } - for row in self.screen.overlay_grid().bounds_iter(overlay_area) { + for row in self.screen.overlay_grid().bounds_iter(area) { self.screen.draw_overlay(row.cols(), row.row_index()); } }