Split Timer::trigger into triggerDown and triggerUp. This is because the keydown event repeats when you hold down, so one function can't be used to control the starting and stopping of the timer.