IP Library Granted Patent US 8,001,483
Granted Patent B2
US 8,001,483 · App. 11/706,621 · Granted Aug 16, 2011

Selective display of cursor

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,001,483
App. No.
11/706,621
Granted
Aug 16, 2011
Kind
B2
Abstract

An application may be provided with an interface for hiding a cursor from or showing a cursor to a video driver and for causing cursor information to be saved in data storage and retrieved from data storage. The interface may include an application program interface (API), which may be callable from the application program. The interface may also include one or more bits included in a video driver, such that the modification of any of the one or more bits may change operation of the video driver. Modification of at least some of the bits may cause a cursor to be hidden from the video driver, may cause a previously hidden cursor to be shown to the video driver, may cause cursor information to be saved in a data storage, or may cause the cursor information to be retrieved from the data storage.

Claims (66)

1. 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.

2. The method of claim 1 , further comprising caching information with respect to a position and an appearance of the system cursor.

3. The method of claim 1 , further comprising:

retrieving saved information about the system cursor; and

showing the system cursor to the video driver after exiting the application, a position and an appearance of the system cursor having been restored from the saved information about the system cursor.

4. The method of claim 1 , further comprising:

calling an application program interface to save information about the system cursor and to hide the system cursor from the video driver.

5. The method of claim 1 , further comprising showing the system cursor to a second video driver while performing the hiding of the system cursor from the video driver, wherein

the video driver is associated with a primary display, and

the second video driver is associated with a virtual device.

6. The processing device-implemented method of claim 1 , wherein:

the application is an accessibility application which magnifies at least a portion of contents of a display screen, and

the custom cursor is a magnified version of the system cursor, the custom cursor being magnified in proportion to the magnified contents of the display screen.

7. The processing device-implemented method of claim 1 , wherein the first process indicates a desire to hide the system cursor by setting one or more bits within the video driver.

8. The processing device-implemented method of claim 7 , wherein the one or more bits within the video driver are included within a plurality of contiguous bits of the video driver that indicate whether the system cursor is to be shown to or hidden from the video driver, whether the system cursor is to be saved, and whether cursor information is to be accessed from data storage or a cache.

9. A processing device comprising:

at least one processor;

a memory for storing data and instructions for the at least one processor; and

a communication interface connecting the at least one processor and the memory, wherein the memory includes, stored therein, machine-readable instructions for the processing device to perform a method comprising:

providing an application program interface, callable from an accessibility application executing on the processing device, for compensating for a visual impairment of a user,

calling the application program interface, by a first process of the accessibility application, to save information about a system cursor and to perform:

setting a cursor-hide flag for the first process, and

hiding the system cursor from a video driver,

creating, by the accessibility application, a custom cursor having a larger size than the system cursor,

providing, by the accessibility application, the custom cursor to the video driver,

receiving a notification indicating that a second process of a plurality of processes that request the system cursor to be hidden 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 that the second process, currently desires the system cursor to be hidden from the video driver, and

restoring the system cursor, in response to receiving the notification, such that the system cursor is shown to the video driver 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

preventing the 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.

10. The processing device of claim 9 , wherein the method further comprises:

controlling whether a second video driver receives or is prevented from receiving information with respect to displaying a cursor, the controlling of whether the second video driver receives or is prevented from receiving the information with respect to displaying the cursor being independent of whether the system cursor is hidden from the video driver or shown to the video driver.

11. The processing device of claim 9 , wherein the calling of the application program interface to save information about a system cursor further comprises caching information with respect to a position and an appearance of the system cursor.

12. The processing device of claim 9 , wherein the method further comprises:

providing custom mouse cursor data to the video driver when the system cursor is hidden from the video driver.

13. The processing device of claim 9 , wherein the method further comprises:

providing custom mouse cursor data to the video driver when the system cursor is hidden from the video driver; and

hiding custom mouse cursor data from the video driver.

14. The processing device of claim 9 , wherein the method further comprises:

showing the system cursor to a second video driver while hiding the system cursor from the video driver, the video driver being associated with a physical display, and the second video driver being associated with a virtual device.

15. An article comprising a tangible machine-readable medium having machine-readable instructions embodied therein, the machine-readable instructions adapted to be executed to implement a method on a processing device, the method comprising:

calling an application program interface, by an accessibility application executing on the processing device, to save information about a cursor, the accessibility application being arranged to compensate for a visual impairment of a user;

calling the application program interface, by a first process of the executing accessibility application, to hide the cursor from a video driver;

creating, by the accessibility application, a custom cursor having a different size than the cursor;

providing, by the accessibility application, the custom cursor to the video driver;

receiving a notification indicating that a second process of a plurality of processes that request the cursor to be hidden from the video driver 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 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 cursor when the second process terminated, whether to keep the cursor hidden from the video driver or to show the 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 cursor to be hidden from the video driver,

restoring, when the deciding decides to show the cursor to the video driver, the cursor in response to receiving the notification, based on no process of the plurality of processes, other than the second process, currently desiring the cursor to be hidden from the video driver; and

preventing the restoring of the cursor, in response to receiving the notification, when the deciding decides to keep the 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 cursor to be hidden from the video driver.

16. The article of claim 15 , wherein when the application program interface is called to save information about a cursor, information with respect to a position and an appearance of the cursor is cached.

17. The article of claim 15 , wherein the method further comprises:

hiding the cursor from or showing the cursor to any one of a plurality of video drivers independently from hiding the cursor from or showing the cursor to another one of the plurality of video drivers.

18. The article of claim 17 , wherein:

one of the plurality of video drivers is associated with a physical display, and

others of the plurality of video drivers are associated with virtual devices.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →