InputEvent is the root class
for representing user input events. Input events are passed to listeners
before the event source processes them. If one of the listeners consumes
an event by using consume(),
the event will not be processed by the event source peer.