Skip to content

Commit 02f922f

Browse files
committed
Implement new ControlFlow and associated events
1 parent 8b8a767 commit 02f922f

14 files changed

Lines changed: 233 additions & 127 deletions

examples/cursor.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ extern crate winit;
33
use winit::{Event, EventLoop, ElementState, MouseCursor, WindowEvent, KeyboardInput, ControlFlow};
44

55
fn main() {
6-
let mut events_loop = EventLoop::new();
6+
let events_loop = EventLoop::new();
77

88
let window = winit::WindowBuilder::new().build(&events_loop).unwrap();
99
window.set_title("A fantastic window!");
1010

1111
let mut cursor_idx = 0;
1212

13-
events_loop.run_forever(move |event, _: &EventLoop| {
13+
events_loop.run(move |event, _, control_flow| {
1414
match event {
1515
Event::WindowEvent { event: WindowEvent::KeyboardInput { input: KeyboardInput { state: ElementState::Pressed, .. }, .. }, .. } => {
1616
println!("Setting cursor to \"{:?}\"", CURSORS[cursor_idx]);
@@ -22,11 +22,11 @@ fn main() {
2222
}
2323
},
2424
Event::WindowEvent { event: WindowEvent::CloseRequested, .. } => {
25-
return ControlFlow::Break;
25+
*control_flow = ControlFlow::Exit;
26+
return;
2627
},
2728
_ => ()
2829
}
29-
ControlFlow::Continue
3030
});
3131
}
3232

examples/cursor_grab.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
extern crate winit;
22

33
fn main() {
4-
let mut events_loop = winit::EventLoop::new();
4+
let events_loop = winit::EventLoop::new();
55

66
let window = winit::WindowBuilder::new()
77
.with_title("Super Cursor Grab'n'Hide Simulator 9000")
88
.build(&events_loop)
99
.unwrap();
1010

11-
events_loop.run_forever(move |event, _: &winit::EventLoop| {
11+
events_loop.run(move |event, _, control_flow| {
12+
*control_flow = winit::ControlFlow::Wait;
1213
if let winit::Event::WindowEvent { event, .. } = event {
1314
use winit::WindowEvent::*;
1415
match event {
15-
CloseRequested => return winit::ControlFlow::Break,
16+
CloseRequested => *control_flow = winit::ControlFlow::Exit,
1617
KeyboardInput {
1718
input: winit::KeyboardInput {
1819
state: winit::ElementState::Released,
@@ -24,7 +25,7 @@ fn main() {
2425
} => {
2526
use winit::VirtualKeyCode::*;
2627
match key {
27-
Escape => return winit::ControlFlow::Break,
28+
Escape => *control_flow = winit::ControlFlow::Exit,
2829
G => window.grab_cursor(!modifiers.shift).unwrap(),
2930
H => window.hide_cursor(!modifiers.shift),
3031
_ => (),
@@ -33,6 +34,5 @@ fn main() {
3334
_ => (),
3435
}
3536
}
36-
winit::ControlFlow::Continue
3737
});
3838
}

examples/fullscreen.rs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use std::io::{self, Write};
44
use winit::{ControlFlow, Event, WindowEvent};
55

66
fn main() {
7-
let mut events_loop = winit::EventLoop::new();
7+
let events_loop = winit::EventLoop::new();
88

99
// enumerating monitors
1010
let monitor = {
@@ -35,12 +35,13 @@ fn main() {
3535
let mut is_maximized = false;
3636
let mut decorations = true;
3737

38-
events_loop.run_forever(move |event, _: &winit::EventLoop| {
38+
events_loop.run(move |event, _, control_flow| {
3939
println!("{:?}", event);
40+
*control_flow = ControlFlow::Wait;
4041

4142
match event {
4243
Event::WindowEvent { event, .. } => match event {
43-
WindowEvent::CloseRequested => return ControlFlow::Break,
44+
WindowEvent::CloseRequested => *control_flow = ControlFlow::Exit,
4445
WindowEvent::KeyboardInput {
4546
input:
4647
winit::KeyboardInput {
@@ -50,7 +51,7 @@ fn main() {
5051
},
5152
..
5253
} => match (virtual_code, state) {
53-
(winit::VirtualKeyCode::Escape, _) => return ControlFlow::Break,
54+
(winit::VirtualKeyCode::Escape, _) => *control_flow = ControlFlow::Exit,
5455
(winit::VirtualKeyCode::F, winit::ElementState::Pressed) => {
5556
is_fullscreen = !is_fullscreen;
5657
if !is_fullscreen {
@@ -73,7 +74,5 @@ fn main() {
7374
},
7475
_ => {}
7576
}
76-
77-
ControlFlow::Continue
7877
});
7978
}

examples/handling_close.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
extern crate winit;
22

33
fn main() {
4-
let mut events_loop = winit::EventLoop::new();
4+
let events_loop = winit::EventLoop::new();
55

66
let _window = winit::WindowBuilder::new()
77
.with_title("Your faithful window")
@@ -10,7 +10,7 @@ fn main() {
1010

1111
let mut close_requested = false;
1212

13-
events_loop.run_forever(move |event, _: &winit::EventLoop| {
13+
events_loop.run(move |event, _, control_flow| {
1414
use winit::WindowEvent::*;
1515
use winit::ElementState::Released;
1616
use winit::VirtualKeyCode::{N, Y};
@@ -53,7 +53,7 @@ fn main() {
5353
// event loop (i.e. if it's a multi-window application), you need to
5454
// drop the window. That closes it, and results in `Destroyed` being
5555
// sent.
56-
return winit::ControlFlow::Break;
56+
*control_flow = winit::ControlFlow::Exit;
5757
}
5858
}
5959
N => {
@@ -69,6 +69,6 @@ fn main() {
6969
_ => (),
7070
}
7171

72-
winit::ControlFlow::Continue
72+
*control_flow = winit::ControlFlow::Wait;
7373
});
7474
}

examples/min_max_size.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ extern crate winit;
33
use winit::dpi::LogicalSize;
44

55
fn main() {
6-
let mut events_loop = winit::EventLoop::new();
6+
let events_loop = winit::EventLoop::new();
77

88
let window = winit::WindowBuilder::new()
99
.build(&events_loop)
@@ -12,12 +12,13 @@ fn main() {
1212
window.set_min_dimensions(Some(LogicalSize::new(400.0, 200.0)));
1313
window.set_max_dimensions(Some(LogicalSize::new(800.0, 400.0)));
1414

15-
events_loop.run_forever(move |event, _: &winit::EventLoop| {
15+
events_loop.run(move |event, _, control_flow| {
1616
println!("{:?}", event);
1717

1818
match event {
19-
winit::Event::WindowEvent { event: winit::WindowEvent::CloseRequested, .. } => winit::ControlFlow::Break,
20-
_ => winit::ControlFlow::Continue,
19+
winit::Event::WindowEvent { event: winit::WindowEvent::CloseRequested, .. } =>
20+
*control_flow = winit::ControlFlow::Exit,
21+
_ => *control_flow = winit::ControlFlow::Wait,
2122
}
2223
});
2324
}

examples/multiwindow.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,16 @@ extern crate winit;
33
use std::collections::HashMap;
44

55
fn main() {
6-
let mut events_loop = winit::EventLoop::new();
6+
let events_loop = winit::EventLoop::new();
77

88
let mut windows = HashMap::new();
99
for _ in 0..3 {
1010
let window = winit::Window::new(&events_loop).unwrap();
1111
windows.insert(window.id(), window);
1212
}
1313

14-
events_loop.run_forever(move |event, events_loop: &winit::EventLoop| {
14+
events_loop.run(move |event, events_loop, control_flow| {
15+
*control_flow = winit::ControlFlow::Wait;
1516
match event {
1617
winit::Event::WindowEvent { event, window_id } => {
1718
match event {
@@ -22,7 +23,7 @@ fn main() {
2223
windows.remove(&window_id);
2324

2425
if windows.is_empty() {
25-
return winit::ControlFlow::Break;
26+
*control_flow = winit::ControlFlow::Exit;
2627
}
2728
},
2829
winit::WindowEvent::KeyboardInput{..} => {
@@ -34,6 +35,5 @@ fn main() {
3435
}
3536
_ => (),
3637
}
37-
winit::ControlFlow::Continue
3838
})
3939
}

examples/proxy.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
extern crate winit;
22

33
fn main() {
4-
let mut events_loop = winit::EventLoop::new();
4+
let events_loop = winit::EventLoop::new();
55

66
let _window = winit::WindowBuilder::new()
77
.with_title("A fantastic window!")
@@ -18,12 +18,12 @@ fn main() {
1818
}
1919
});
2020

21-
events_loop.run_forever(move |event, _: &winit::EventLoop| {
21+
events_loop.run(move |event, _, control_flow| {
2222
println!("{:?}", event);
2323
match event {
2424
winit::Event::WindowEvent { event: winit::WindowEvent::CloseRequested, .. } =>
25-
winit::ControlFlow::Break,
26-
_ => winit::ControlFlow::Continue,
25+
*control_flow = winit::ControlFlow::Wait,
26+
_ => *control_flow = winit::ControlFlow::Wait,
2727
}
2828
});
2929
}

examples/resizable.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
extern crate winit;
22

33
fn main() {
4-
let mut events_loop = winit::EventLoop::new();
4+
let events_loop = winit::EventLoop::new();
55

66
let mut resizable = false;
77

@@ -12,10 +12,11 @@ fn main() {
1212
.build(&events_loop)
1313
.unwrap();
1414

15-
events_loop.run_forever(move |event, _: &winit::EventLoop| {
15+
events_loop.run(move |event, _, control_flow| {
16+
*control_flow = winit::ControlFlow::Wait;
1617
match event {
1718
winit::Event::WindowEvent { event, .. } => match event {
18-
winit::WindowEvent::CloseRequested => return winit::ControlFlow::Break,
19+
winit::WindowEvent::CloseRequested => *control_flow = winit::ControlFlow::Exit,
1920
winit::WindowEvent::KeyboardInput {
2021
input:
2122
winit::KeyboardInput {
@@ -33,6 +34,5 @@ fn main() {
3334
},
3435
_ => (),
3536
};
36-
winit::ControlFlow::Continue
3737
});
3838
}

examples/transparent.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,21 @@
11
extern crate winit;
22

33
fn main() {
4-
let mut events_loop = winit::EventLoop::new();
4+
let events_loop = winit::EventLoop::new();
55

66
let window = winit::WindowBuilder::new().with_decorations(false)
77
.with_transparency(true)
88
.build(&events_loop).unwrap();
99

1010
window.set_title("A fantastic window!");
1111

12-
events_loop.run_forever(move |event, _: &winit::EventLoop| {
12+
events_loop.run(move |event, _, control_flow| {
1313
println!("{:?}", event);
1414

1515
match event {
16-
winit::Event::WindowEvent { event: winit::WindowEvent::CloseRequested, .. } => winit::ControlFlow::Break,
17-
_ => winit::ControlFlow::Continue,
16+
winit::Event::WindowEvent { event: winit::WindowEvent::CloseRequested, .. } =>
17+
*control_flow = winit::ControlFlow::Exit,
18+
_ => *control_flow = winit::ControlFlow::Wait,
1819
}
1920
});
2021
}

examples/window.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@ fn main() {
88
.build(&events_loop)
99
.unwrap();
1010

11-
events_loop.run_forever(move |event, _: &winit::EventLoop| {
11+
events_loop.run(move |event, _, control_flow| {
1212
println!("{:?}", event);
1313

1414
match event {
1515
winit::Event::WindowEvent {
1616
event: winit::WindowEvent::CloseRequested,
1717
..
18-
} => winit::ControlFlow::Break,
19-
_ => winit::ControlFlow::Continue,
18+
} => *control_flow = winit::ControlFlow::Exit,
19+
_ => *control_flow = winit::ControlFlow::Wait,
2020
}
2121
});
2222
}

0 commit comments

Comments
 (0)