[vwnc] Stuck cursor problems

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[vwnc] Stuck cursor problems

Andres Valloud-6
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

CursorChangesQueue4.zip (7K) Download Attachment