The ground work for MOUSE events.

Entertainingly, that exposed a fun bug in the events generator -- it would
return a single event, rather than "until Queue.Empty". Which exposed, in
turn, the fact that reposting QUIT events means the generator never
finished... Man, that was silly.