awful.hooks: replace already existing timer hooks instead of creating new ones
Signed-off-by: Gregor Best <farhaven@googlemail.com> Signed-off-by: Julien Danjou <julien@danjou.info>
This commit is contained in:
parent
c86ef562b4
commit
01a725757a
|
@ -57,6 +57,19 @@ for name, hook in pairs(capi.hooks) do
|
||||||
if type(time) ~= 'number' or type(f) ~= 'function' or time <= 0 then
|
if type(time) ~= 'number' or type(f) ~= 'function' or time <= 0 then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if not _M[name].callbacks then
|
||||||
|
_M[name].callbacks = {}
|
||||||
|
end
|
||||||
|
|
||||||
|
for k, v in pairs(_M[name].callbacks) do
|
||||||
|
if v.callback == f then
|
||||||
|
_M[name].unregister(f)
|
||||||
|
_M[name].register(time, f, runnow)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
local new_timer
|
local new_timer
|
||||||
if _M[name].timer then
|
if _M[name].timer then
|
||||||
-- Take the smallest between current and new
|
-- Take the smallest between current and new
|
||||||
|
@ -64,12 +77,11 @@ for name, hook in pairs(capi.hooks) do
|
||||||
else
|
else
|
||||||
new_timer = time
|
new_timer = time
|
||||||
end
|
end
|
||||||
if not _M[name].callbacks then
|
|
||||||
_M[name].callbacks = {}
|
|
||||||
end
|
|
||||||
if _M[name].timer ~= new_timer then
|
if _M[name].timer ~= new_timer then
|
||||||
_M[name].timer = new_timer
|
_M[name].timer = new_timer
|
||||||
end
|
end
|
||||||
|
|
||||||
hook(_M[name].timer, function (...)
|
hook(_M[name].timer, function (...)
|
||||||
for i, callback in ipairs(_M[name].callbacks) do
|
for i, callback in ipairs(_M[name].callbacks) do
|
||||||
callback['counter'] = callback['counter'] + _M[name].timer
|
callback['counter'] = callback['counter'] + _M[name].timer
|
||||||
|
|
Loading…
Reference in New Issue