fix keyPressed, add generic key events, tick diff