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