From ffd187dc177f4a15fa2e87579b9cbabee38b8245 Mon Sep 17 00:00:00 2001 From: Matthias Richter Date: Mon, 4 Nov 2013 21:52:36 +0100 Subject: Fix #11: Right click support. When clicked, Button() and Input() return the respective mouse button constant ('l', 'r', 'm') instead of just true. When activated by keyboard, Button() and Input() return 'return'. Otherwise Button() and Input() return false. --- mouse.lua | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'mouse.lua') 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() -- cgit v1.2.3-54-g00ecf