@@ -6,8 +6,14 @@ fn main() {
6
6
let window1 = winit:: Window :: new ( & events_loop) . unwrap ( ) ;
7
7
let window2 = winit:: Window :: new ( & events_loop) . unwrap ( ) ;
8
8
let window3 = winit:: Window :: new ( & events_loop) . unwrap ( ) ;
9
+ let window4 = winit:: Window :: new ( & events_loop) . unwrap ( ) ;
9
10
10
- let mut num_windows = 3 ;
11
+ let window4_id = window4. id ( ) ;
12
+ let mut window4_opt = Some ( window4) ;
13
+
14
+ let mut num_windows = 4 ;
15
+
16
+ println ! ( "Press any key on any window to drop the 4th window explicitly. (Testing impl Drop for Window)" ) ;
11
17
12
18
if cfg ! ( target_os = "linux" ) {
13
19
println ! ( "Running this example under wayland may not display a window at all.\n \
@@ -24,6 +30,8 @@ fn main() {
24
30
println ! ( "Window 2 has been closed" )
25
31
} else if window_id == window3. id ( ) {
26
32
println ! ( "Window 3 has been closed" ) ;
33
+ } else if window_id == window4_id {
34
+ println ! ( "Window 4 has been closed" ) ;
27
35
} else {
28
36
unreachable ! ( )
29
37
}
@@ -33,6 +41,12 @@ fn main() {
33
41
return winit:: ControlFlow :: Break ;
34
42
}
35
43
} ,
44
+
45
+ winit:: Event :: WindowEvent { event : winit:: WindowEvent :: KeyboardInput { ..} , .. } => {
46
+ println ! ( "Dropping window 4 explicitly" ) ;
47
+ window4_opt = None ;
48
+ } ,
49
+
36
50
_ => ( ) ,
37
51
}
38
52
winit:: ControlFlow :: Continue
0 commit comments