From a8fa705e2fac3a3a94220a564356212b43c86aad Mon Sep 17 00:00:00 2001 From: Cruor Date: Sun, 28 Feb 2021 00:02:09 +0100 Subject: [PATCH] Room swapping now prevents mouse events from going through --- src/input_devices/tool_device.lua | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/input_devices/tool_device.lua b/src/input_devices/tool_device.lua index 7c50fa85..26eef76c 100644 --- a/src/input_devices/tool_device.lua +++ b/src/input_devices/tool_device.lua @@ -47,15 +47,46 @@ local function tryRoomSwap(x, y, button, istouch, presses) end end +-- Make sure we don't send release/click events for room swaps +local consumeNextRelease = false + +function device.mousereleased(x, y, button, istouch, presses, click) + if consumeNextRelease then + return true + end + + local currentTool = toolHandler.currentTool + + if click then + local consume = tryRoomSwap(x, y, button, istouch, presses) + + if consume then + consumeNextRelease = true + + return true + end + end + + if currentTool and currentTool.mousereleased then + print("mouse released") + currentTool.mousereleased(x, y, button, istouch, presses, click) + end +end + function device.mouseclicked(x, y, button, istouch, presses) + consumeNextRelease = false + local consume = tryRoomSwap(x, y, button, istouch, presses) local currentTool = toolHandler.currentTool if consume then + consumeNextRelease = true + return true end if currentTool and currentTool.mouseclicked then + print("mouse clicked") currentTool.mouseclicked(x, y, button, istouch, presses) end end