Patent ID: 8001483

Claim:
A processing device-implemented method, for use with an application, for selectively hiding or showing a system cursor, the method comprising: performing, in response to a first process indicating a desire to hide the system cursor, the first process being one of a plurality of processes that request the system cursor to be hidden: hiding the system cursor from a video driver in preparation for executing the application, creating, by the application, a custom cursor having a different size than the system cursor, and providing, by the application, the custom cursor to the video driver; receiving a notification indicating that a second process of the plurality of processes is terminated; determining, in response to receiving the notification, whether a cursor-hide flag for the second process indicates that the second process hid the system cursor when the second process terminated; deciding, when the determining determines that the cursor-hide flag for the second process indicates that the second process hid the system cursor when the second process terminated, whether to keep the system cursor hidden from the video driver or to show the system cursor to the video driver, the deciding being based on whether at least one process of the plurality of processes, other than the second process, currently desires the system cursor to be hidden from the video driver; preventing a restoring of the system cursor, in response to receiving the notification, when the deciding decides to keep the system cursor hidden from the video driver based on the at least one process of the plurality of processes, other than the second process, currently desiring the system cursor to be hidden from the video driver; and restoring the system cursor, in response to receiving the notification, when the deciding decides to show the system cursor to the video driver based on no process of the plurality of processes, other than the second process, currently desiring the system cursor to be hidden from the video driver; and wherein the method is implemented on a processing device.