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 <manos@pitsidianak.is>
pull/436/head
Manos Pitsidianakis 2 months ago
parent a9122c6e34
commit 3ebf5510ea
No known key found for this signature in database
GPG Key ID: 7729C7707F7E09D0

@ -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());
}
}

Loading…
Cancel
Save