aboutsummaryrefslogtreecommitdiffstats
path: root/mouse.lua
diff options
context:
space:
mode:
Diffstat (limited to 'mouse.lua')
-rw-r--r--mouse.lua10
1 files changed, 7 insertions, 3 deletions
diff --git a/mouse.lua b/mouse.lua
index 83a150f..a7d6d6c 100644
--- a/mouse.lua
+++ b/mouse.lua
@@ -27,7 +27,7 @@ THE SOFTWARE.
local _M -- holds the module. needed to make widgetHit overridable
local x,y = 0,0
-local down = false
+local down, downLast = false, false
local hot, active = nil, nil
local NO_WIDGET = {}
local function _NOP_() end
@@ -55,13 +55,17 @@ local function updateWidget(id, pos, size, hit)
end
local function releasedOn(id)
- return not down and isHot(id) and isActive(id)
+ return not down and isHot(id) and isActive(id) and downLast
end
local function beginFrame()
hot = nil
x,y = love.mouse.getPosition()
- down = love.mouse.isDown('l')
+ downLast = down
+ down = false
+ for _,btn in ipairs{'l', 'm', 'r'} do
+ down = down or (love.mouse.isDown(btn) and btn)
+ end
end
local function endFrame()