util.events: event handlers can now return a result, which also interrupts further handling of the event

Fri, 15 May 2009 06:23:55 +0500

author
Waqas Hussain <waqas20@gmail.com>
date
Fri, 15 May 2009 06:23:55 +0500
changeset 1146
542d49518d3a
parent 1145
06051191913d
child 1147
513c1d071045

util.events: event handlers can now return a result, which also interrupts further handling of the event

util/events.lua file | annotate | diff | comparison | revisions
--- a/util/events.lua	Wed May 13 23:24:49 2009 +0500
+++ b/util/events.lua	Fri May 15 06:23:55 2009 +0500
@@ -53,7 +53,8 @@
 		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 @@
 		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;

mercurial