I'm finding the use of isRunning here to be somewhat hacky. Would be better to add proper modifier support to InputEvent.