I was getting really annoyed at the constant messages in the
Console:
2004-02-07 20:03:52.916 Desktop Manager[439] Error getting
screen rect: 1001
I finally figured out the cause. Each pager updates once a second.
So does the Workspace Controller's window list. The problem is,
when a window closes, if either pager updates before the window
list, the window ID is no longer valid and the error occurs. To solve
this problem, I removed the timers from the pagers and added a
NOTIFICATION_WINDOWSUPDATED notification that fires after
every window update. The pagers redraw themselves on this
notification. Not only does this get rid of the errors, it also
synchronizes the pagers and makes new windows show up faster
(previously, a new window could take up to 2 seconds to show up,
if it is opened right after the window list. Now the max time is 1
second).
As usual, this is patched against the v0.5 source.
The patch