From cfc9bf6a35007ef2a62e2a668b8c659fd2b24992 Mon Sep 17 00:00:00 2001 From: Waqas Hussain Date: Fri, 15 May 2009 06:23:55 +0500 Subject: util.events: event handlers can now return a result, which also interrupts further handling of the event --- util/events.lua | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/util/events.lua b/util/events.lua index b1f3811c..704d31a4 100644 --- a/util/events.lua +++ b/util/events.lua @@ -53,7 +53,8 @@ function new() if not h then h = {}; handlers[event] = h; end local dispatcher = function(data) for _, handler in ipairs(h) do - handler(data); + local ret = handler(data); + if ret ~= nil then return ret; end end end; dispatchers[event] = dispatcher; @@ -66,7 +67,8 @@ function new() local h = handlers[event]; if h then for _, handler in ipairs(h) do - handler(data); + local ret = handler(data); + if ret ~= nil then return ret; end end end end; -- cgit v1.2.3