Hello,
In the past, I've
distributed a package called Cursor Changes Queue the point of which is to
reduce the frequency with which the cursor is updated. This is useful
in some circumstances (e.g.: Store, GemStone) because excessive cursor changes
can cause severe performance penalties due to the associated screen
damage. This was observed to be particularly significant when viewing the
image's UI on a remote X server. The package keeps the illusion
of a changing cursor by sampling all the cursor requests to be coalesced so that
very quick cursor changes from and back to normal still cause a visual effect on
the screen.
At some point last
year it was suggested that I should extend the Cursor Changes Queue to deal with
the problem of stuck cursors. These occur because if different processes
use showWhile:, they may revert to what they think is the old cursor in the
wrong order. This leaves e.g.: the browser's vertical resize cursor stuck
as the normal cursor.
I enhanced the
Cursor Changes Queue to handle showWhile: requests in terms of a stack, thus
solving the ordering issue. In addition, the package introduces the notion
of a foreground cursor and a background cursor. The background cursor
is changed by means of SomeCursor>>beCursor, and the foreground cursor is
changed by means of showWhile:. When foreground cursor requests are
exhausted, the cursor is reverted to the background cursor. Note that this
is an implementation detail, and that none of that is exposed to existing users
of beCursor or showWhile:.
I have attached the
new Cursor Changes Queue goodie for your convenience. While I have tested
it in my images for quite a while and I think it should be fine, I'd appreciate
any feedback should it cause problems or need enhancements.
Thanks,
Andres.
_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc