From 55034b769ef3922067d699871d1619fea9cbbc6b Mon Sep 17 00:00:00 2001 From: IntegratedQuantum Date: Fri, 17 Nov 2023 20:12:57 +0100 Subject: [PATCH] Return to the game when pressing escape while the mouse isn't grabbed. This seems to be more intuitive than clicking on the background. Fixes #179 --- src/main.zig | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main.zig b/src/main.zig index f75ebeb6..9fd45ac4 100644 --- a/src/main.zig +++ b/src/main.zig @@ -297,6 +297,10 @@ pub fn setNextKeypressListener(listener: ?*const fn(c_int, c_int, c_int) void) ! if(nextKeypressListener != null) return error.AlreadyUsed; nextKeypressListener = listener; } +fn escape() void { + if(game.world == null) return; + Window.setMouseGrabbed(!Window.grabbed); +} fn ungrabMouse() void { Window.setMouseGrabbed(false); } @@ -359,7 +363,7 @@ pub const KeyBoard = struct { Key{.name = "takeBackgroundImage", .key = c.GLFW_KEY_PRINT_SCREEN, .releaseAction = &takeBackgroundImageFn}, // Gui: - Key{.name = "escape", .key = c.GLFW_KEY_ESCAPE, .releaseAction = &ungrabMouse}, + Key{.name = "escape", .key = c.GLFW_KEY_ESCAPE, .releaseAction = &escape}, Key{.name = "openInventory", .key = c.GLFW_KEY_I, .releaseAction = &openInventory}, Key{.name = "openWorkbench", .key = c.GLFW_KEY_K, .releaseAction = &openWorkbench}, // TODO: Remove Key{.name = "openCreativeInventory(aka cheat inventory)", .key = c.GLFW_KEY_C, .releaseAction = &openCreativeInventory},