summaryrefslogtreecommitdiff
path: root/client/src/window.rs
diff options
context:
space:
mode:
Diffstat (limited to 'client/src/window.rs')
-rw-r--r--client/src/window.rs10
1 files changed, 9 insertions, 1 deletions
diff --git a/client/src/window.rs b/client/src/window.rs
index 8b3ee9e..fb9f375 100644
--- a/client/src/window.rs
+++ b/client/src/window.rs
@@ -13,12 +13,14 @@ use winit::{
pub struct WindowState {
init: Option<TcpStream>,
window: Option<(Window, State<'static>)>,
+ lock: bool,
}
impl WindowState {
pub fn new(init: TcpStream) -> Self {
Self {
window: None,
init: Some(init),
+ lock: false,
}
}
}
@@ -56,7 +58,13 @@ impl ApplicationHandler for WindowState {
if event.state == ElementState::Pressed {
match event.physical_key {
PhysicalKey::Code(KeyCode::Escape) => {
- win.set_cursor_grab(CursorGrabMode::Locked).unwrap();
+ win.set_cursor_grab(if self.lock {
+ CursorGrabMode::None
+ } else {
+ CursorGrabMode::Locked
+ })
+ .unwrap();
+ self.lock = !self.lock;
}
_ => (),
}