As squeak stands now, the keyboard hack sends mouse events to a window the mouse may no longer be pointing at, which is a bad inconsistency.
What do you mean? X won't send the X mouse events to any window but the one that the mouse is over (depending on the Window Manager's focus policy, I guess).
I should have said Morph instead of window. The keyboard hack sends mouse events to a MORPH that the mouse may not be pointing at. Focus on a Workspace, and scroll it around with your mousewheel. Now, move your mouse out of the workspace window (still inside the squeak world), and continue scrolling the workspace.
The keyboard hack actually just takes X mouse events (which come into a window the same way that mouse motion, etc. events do) and sends the image keystrokes.
It steals controls from a pointing device and gives them to a non-pointing device. A "pointing device" is able to specify which window/widget its event is meant for. Non-pointers, like the keyboard, depend upon a fantasy pointer (focus) to send their events to a window.
Is there a case in X where a window would get mouse events but not keyboard events?
An X window manager can allow any mouse event through to an unfocused window. On certain events (say, a button 1 click), it could finally decide to change the application(and keyboard) focus.
squeak-dev@lists.squeakfoundation.org