Hello! I recently updated my macOS Catalina to 10.15.2. When I try to write winit code like this:
fn main() {
let event_loop = winit::event_loop::EventLoop::new();
winit::window::WindowBuilder::new()
.with_title("Hello world!")
.with_inner_size(winit::dpi::LogicalSize::new(1024.0, 768.0))
.build(&event_loop).unwrap();
event_loop.run(|ev, _target, flow| match ev {
winit::event::Event::WindowEvent { event, .. } => match event {
winit::event::WindowEvent::CloseRequested =>
*flow = winit::event_loop::ControlFlow::Exit,
winit::event::WindowEvent::KeyboardInput {
device_id, input: kin, is_synthetic: _
} => {
println!("WindowEvent Key: {:?} DeviceId: {:?}", kin, device_id);
},
_ => {},
},
winit::event::Event::DeviceEvent { event, device_id } => match event {
winit::event::DeviceEvent::Key(kin) => {
println!("DeviceEvent Key: {:?} DeviceId: {:?}", kin, device_id);
},
_ => {},
},
_ => {},
});
}
When I run and press any keys, I expect to have an both WindowEvent and DeviceEvent in the output. However the output is like this:
WindowEvent Key: KeyboardInput { scancode: 23, state: Pressed, virtual_keycode: Some(Key5), modifiers: (empty) } DeviceId: DeviceId(DeviceId)
WindowEvent Key: KeyboardInput { scancode: 23, state: Released, virtual_keycode: Some(Key5), modifiers: (empty) } DeviceId: DeviceId(DeviceId)
WindowEvent Key: KeyboardInput { scancode: 22, state: Pressed, virtual_keycode: Some(Key6), modifiers: (empty) } DeviceId: DeviceId(DeviceId)
WindowEvent Key: KeyboardInput { scancode: 22, state: Released, virtual_keycode: Some(Key6), modifiers: (empty) } DeviceId: DeviceId(DeviceId)
WindowEvent Key: KeyboardInput { scancode: 28, state: Pressed, virtual_keycode: Some(Key8), modifiers: (empty) } DeviceId: DeviceId(DeviceId)
WindowEvent Key: KeyboardInput { scancode: 28, state: Released, virtual_keycode: Some(Key8), modifiers: (empty) } DeviceId: DeviceId(DeviceId)
WindowEvent Key: KeyboardInput { scancode: 25, state: Pressed, virtual_keycode: Some(Key9), modifiers: (empty) } DeviceId: DeviceId(DeviceId)
WindowEvent Key: KeyboardInput { scancode: 25, state: Released, virtual_keycode: Some(Key9), modifiers: (empty) } DeviceId: DeviceId(DeviceId)
There is no DeviceEvent in the output. Is this expected behavior to have WindowEvent only? Or is there something wrong with my code or operating system (permission or something)? Thanks!
My winit version is winit = "0.21.0".
(I have raised issue at glium/glium#1822 , but that could be an issue on winit)
Hello! I recently updated my macOS Catalina to 10.15.2. When I try to write
winitcode like this:When I run and press any keys, I expect to have an both WindowEvent and DeviceEvent in the output. However the output is like this:
There is no DeviceEvent in the output. Is this expected behavior to have WindowEvent only? Or is there something wrong with my code or operating system (permission or something)? Thanks!
My
winitversion iswinit = "0.21.0".(I have raised issue at glium/glium#1822 , but that could be an issue on
winit)