diff --git a/examples/drop.rs b/examples/drop.rs new file mode 100644 index 0000000..43710c6 --- /dev/null +++ b/examples/drop.rs @@ -0,0 +1,30 @@ +use minifb::{Key, ScaleMode, Window, WindowOptions}; +use std::thread; +use std::time::{Duration, Instant}; + +const WIDTH: usize = 640 / 2; +const HEIGHT: usize = 360 / 2; + +fn show_window() { + let mut window = Window::new( + "Drop Test - Window will close after 2 seconds.", + WIDTH, + HEIGHT, + WindowOptions::default(), + ) + .expect("Unable to create window"); + + let now = Instant::now(); + + while window.is_open() && now.elapsed().as_secs() < 2 { + window.update(); + } +} + +fn main() { + println!("Showing Window"); + show_window(); + println!("Dropped"); + thread::sleep(Duration::from_millis(2000)); + println!("Exiting"); +} diff --git a/src/os/windows/mod.rs b/src/os/windows/mod.rs index 1d7a0b6..d073462 100644 --- a/src/os/windows/mod.rs +++ b/src/os/windows/mod.rs @@ -1272,7 +1272,7 @@ impl Drop for Window { } if self.window.is_some() { - winuser::CloseWindow(self.window.unwrap()); + winuser::DestroyWindow(self.window.unwrap()); } } }