From fd6c7fafa0f0594a1af0f05e7e1f4b24b9632b73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juhani=20Krekel=C3=A4?= Date: Sun, 4 Jun 2023 19:34:01 +0300 Subject: [PATCH] Grab mouse on click and ungrab if a modifier is pressed --- bundle/main.lua | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/bundle/main.lua b/bundle/main.lua index 1c88e81..98c7f54 100644 --- a/bundle/main.lua +++ b/bundle/main.lua @@ -75,7 +75,6 @@ function fromScreenCoordinate(x, y) end function startStage() - love.mouse.setVisible(false) movePaddle(0) missiles = {} @@ -380,6 +379,9 @@ end love.mousemoved = movePaddle function love.mousepressed(x, y, button, istouch, presses) + love.mouse.setVisible(false) + love.mouse.setGrabbed(true) + if state == states.gameplay then explodeAllReflected() elseif state == states.title then @@ -387,6 +389,15 @@ function love.mousepressed(x, y, button, istouch, presses) end end +function love.keypressed(key, scancode, isrepeat) + -- Ungrab mouse if user tried to do any GUI commands + if scancode == 'lctrl' or scancode == 'lshift' or scancode == 'lalt' or scancode == 'lgui' or + scancode == 'rctrl' or scancode == 'rshift' or scancode == 'ralt' or scancode == 'rgui' then + love.mouse.setVisible(true) + love.mouse.setGrabbed(false) + end +end + love.resize = setScreenDimensions function drawWalls()