Ah, it'll swallow the first keypress if you do that.  (Not obvious code at all!)  I reckon what you have is probably best.