On X11 using Xmonad window manager:
minimal program: a winit window with cursor state set to grab:
fn main() {
let mut events_loop = winit::EventsLoop::new();
let window = winit::WindowBuilder::new().build(&events_loop).unwrap();
window.set_cursor_state(winit::CursorState::Grab).unwrap();
events_loop.run_forever(|event| {
ControlFlow::Continue
});
}
issue:
I run the program. (cursor is grabbed)
I leave the window with xmonad key.
I enter the window: cursor is not longer grabbed
to solve this issue and grab the cursor again I wrote: set cursor grab on mouse entered
fn main() {
let mut events_loop = winit::EventsLoop::new();
let window = winit::WindowBuilder::new().build(&events_loop).unwrap();
window.set_cursor_state(winit::CursorState::Grab).unwrap();
events_loop.run_forever(|event| {
match event {
winit::Event::WindowEvent { event: winit::WindowEvent::MouseEntered { .. }, .. } => window.set_cursor_state(winit::CursorState::Grab).unwrap(),
_ => (),
}
ControlFlow::Continue
});
}
That didn't solve anything. But then I wrote: set cursor state to normal and then to grab on mouse entered
and it works (cursor is grabbed again):
fn main() {
let mut events_loop = winit::EventsLoop::new();
let window = winit::WindowBuilder::new().build(&events_loop).unwrap();
window.set_cursor_state(winit::CursorState::Grab).unwrap();
events_loop.run_forever(|event| {
match event {
winit::Event::WindowEvent { event: winit::WindowEvent::MouseEntered { .. }, .. } => {
window.set_cursor_state(winit::CursorState::Normal).unwrap();
window.set_cursor_state(winit::CursorState::Grab).unwrap();
},
_ => (),
}
ControlFlow::Continue
});
}
I think this is an issue and winit should grab the cursor again automatically on mouse entered.
If so I can look to make a PR.
On X11 using Xmonad window manager:
minimal program: a winit window with cursor state set to grab:
issue:
I run the program. (cursor is grabbed)
I leave the window with xmonad key.
I enter the window: cursor is not longer grabbed
to solve this issue and grab the cursor again I wrote: set cursor grab on mouse entered
That didn't solve anything. But then I wrote: set cursor state to normal and then to grab on mouse entered
and it works (cursor is grabbed again):
I think this is an issue and winit should grab the cursor again automatically on mouse entered.
If so I can look to make a PR.