Primary changes to the public interface that drove this rewrite:
Require macro to either be keydown or keyup. This cleans up a lot of code
where we were needing to determine whether or not the up/down event should be
fired.
Separate execution and modifier keys. Again this cleans things up a lot
because we don't need to do a bunch of extra work to determine which keys are
modifiers and which is an execution key. This also fixes #19 where it wasn't
possible to fire a keyup macro's callback with a modifier key.
Primary changes to the public interface that drove this rewrite:
keydown
orkeyup
. This cleans up a lot of code where we were needing to determine whether or not the up/down event should be fired.Other wins: