event: add push_event() fix user event handling, add docs