diff --git a/examples/multiwindow.rs b/examples/multiwindow.rs index c020f69d..54ac1d47 100644 --- a/examples/multiwindow.rs +++ b/examples/multiwindow.rs @@ -6,8 +6,14 @@ fn main() { let window1 = winit::Window::new(&events_loop).unwrap(); let window2 = winit::Window::new(&events_loop).unwrap(); let window3 = winit::Window::new(&events_loop).unwrap(); + let window4 = winit::Window::new(&events_loop).unwrap(); - let mut num_windows = 3; + let window4_id = window4.id(); + let mut window4_opt = Some(window4); + + let mut num_windows = 4; + + println!("Press any key on any window to drop the 4th window explicitly. (Testing impl Drop for Window)"); if cfg!(target_os = "linux") { println!("Running this example under wayland may not display a window at all.\n\ @@ -24,6 +30,8 @@ fn main() { println!("Window 2 has been closed") } else if window_id == window3.id() { println!("Window 3 has been closed"); + } else if window_id == window4_id { + println!("Window 4 has been closed"); } else { unreachable!() } @@ -33,6 +41,12 @@ fn main() { return winit::ControlFlow::Break; } }, + + winit::Event::WindowEvent { event: winit::WindowEvent::KeyboardInput{..}, .. } => { + println!("Dropping window 4 explicitly"); + window4_opt = None; + }, + _ => (), } winit::ControlFlow::Continue