add window visibility

This commit is contained in:
Cory Forsstrom 2021-04-08 12:58:08 -07:00
parent 3ea2c4595a
commit cdab8f90fb
4 changed files with 34 additions and 1 deletions

View file

@ -12,6 +12,7 @@ pub struct State<A: Application> {
mode: Mode,
background_color: Color,
scale_factor: f64,
visible: bool,
viewport: Viewport,
viewport_version: usize,
cursor_position: winit::dpi::PhysicalPosition<f64>,
@ -26,6 +27,7 @@ impl<A: Application> State<A> {
let mode = application.mode();
let background_color = application.background_color();
let scale_factor = application.scale_factor();
let visible = application.visible();
let viewport = {
let physical_size = window.inner_size();
@ -41,6 +43,7 @@ impl<A: Application> State<A> {
mode,
background_color,
scale_factor,
visible,
viewport,
viewport_version: 0,
// TODO: Encode cursor availability in the type-system
@ -201,5 +204,14 @@ impl<A: Application> State<A> {
self.scale_factor = new_scale_factor;
}
// Update window visibility
let new_visible = application.visible();
if self.visible != new_visible {
window.set_visible(new_visible);
self.visible = new_visible;
}
}
}