add cursor support
modify push_event