Modified event handlers to return a value, which is passed on to subsequent handlers as the event data (allowing struct event data to be modified as handlers execute)

Signed-off-by: Martin Evans <martindevans@gmail.com>