awesome-longpress/init.lua

31 lines
743 B
Lua

local gears = require "gears"
local longpress = {["timeout"]=1}
function longpress.add(button,normfunc,lpfunc)
local isPressed = false
local longPress = false
local longpressTimer
local function doPressed()
if not isPressed then return end
isPressed = false
if longPress then -- long press
lpfunc()
else
normfunc()
end
longpressTimer:stop()
end
longpressTimer = gears.timer({timeout=longpress.timeout,single_shot=true,callback=function()
longPress = true
doPressed()
longpressTimer:stop()
error("long pressed")
end})
button:connect_signal("button::press",function()
isPressed = true
longPress = false
longpressTimer:again()
end)
button:connect_signal("button::release",doPressed)
end
return longpress