Source: http://patents.com/us-8330715.html
Timestamp: 2018-05-23 17:06:52
Document Index: 151577028

Matched Legal Cases: ['Application No. 200680054080', 'Application No. 96109088', 'Application No. 96109088', 'Application No. 96109088', 'Application No. 10', 'Application No. 10', 'Application No. 10', 'Application No. 200680054080', 'Application No. 2']

US Patent # 8,330,715. Cursor control - Patents.com
United States Patent 8,330,715
Yadavalli , et al. December 11, 2012
Yadavalli; Sriram (Watertown, MA), Zhang; Yongjun (Belmont, MA), Koivisto; Antti (San Francisco, CA)
12/456,847
12225891
PCT/IB2006/001288 Mar., 2006
Current International Class: G06F 3/033 (20060101); G09G 5/08 (20060101)
Field of Search: 345/156-168 715/856
4987411 January 1991 Ishigami
5673068 September 1997 Jondrow et al.
5692114 November 1997 Imai
6229525 May 2001 Alexander
2005/0114132 May 2005 Hsu
0 628 905 Dec., 1994 EP
235358 Jul., 2005 TW
Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority (1 page), International Search Report (4 pages) and Written Opinion of the International Searching Authority (5 pages), 10 pages total. cited by other .
Office Action from Chinese Patent Application No. 200680054080.2, issued Apr. 28, 2010. cited by other .
Office Action from Taiwanese Patent Application No. 96109088, dated May 14, 2010. cited by other .
Letter reporting Office Action of May 14, 2010 from Taiwanese Patent Application No. 96109088, dated Jun. 9, 2010. cited by other .
International Preliminary Report on Patentability for Application No. PCT/IB2006/001288 dated Sep. 30, 2008. cited by other .
Notice of Allowance for Taiwan Application No. 96109088 dated Jan. 28, 2011. cited by other .
Notice of Allowance for Korean Application No. 10-2008-7023672 dated Sep. 28, 2011. cited by other .
Office Action for Korean Application No. 10-2008-7023672 dated Dec. 30, 2009. cited by other .
Office Action for Korean Application No. 10-2008-7023672 dated Jul. 5, 2010. cited by other .
Office Action for Chinese Application No. 200680054080.2 dated May 20, 2011. cited by other .
Office Action for Canadian Application No. 2,646,011 dated Jan. 5, 2012. cited by other.
This application is a continuation of U.S. application Ser. No. 12/225,891 filed Sep. 30, 2008 now abandoned as the U.S. National Stage of International Application No. PCT/IB2006/001288 filed in English Mar. 30, 2006 which was published on Oct. 11, 2007 under International Publication No. WO2007/113612.
2. A method as claimed in claim 1, further comprising repeatedly performing operations (i), (ii)(a), (ii) and (iv) and then performing operations (i), (ii)(b) and (iii) to navigate the cursor to a selectable item.
4. A method as claimed in claim 1, wherein the end position is the second end position when as a consequence of the detected input command it is determined that the selectable item is a candidate destination for the cursor.
5. A method as claimed in claim 1, wherein the second end position is an unpredetermined magnitude from the current position on a bearing influenced by the detected directional input command.
6. A method as claimed in claim 1, wherein the second end position is determined by searching a display area for one or more selectable items.
7. A method as claimed in claim 6, wherein the search area comprises a plurality of sub-areas between the current position and the first end position.
8. A method as claimed in claim 7, wherein the sub-areas are positioned randomly.
9. A method as claimed in claim 6, wherein the search area extends from the current position to beyond the first end position.
10. A method as claimed in claim 1, wherein the predetermined magnitude is variable.
11. A method as claimed in claim 10, wherein the predetermined magnitude is varied in response to detection of an oscillating movement of the cursor in response to consecutive user input commands.
12. A method as claimed in claim 1, wherein, after movement of the cursor, the content of the display is scrolled automatically.
13. A method as claimed in claim 1, wherein the end position in response to a directional input command that is repeated or continuous is a first end position at a predetermined magnitude from the current position.
14. A method as claimed in claim 13, wherein the predetermined magnitude grows as the directional input command is repeated or continued.
15. A computer program product comprising at least one non-transitory computer-readable storage medium tangibly embodying program instructions for causing a computer to perform the method of claim 1.
16. A computer program product comprising at least one non-transitory computer-readable storage medium tangibly embodying computer program instructions, which when loaded into a processor, are configured to cause an apparatus to at least perform: determining whether a detected directional input should be interpreted as an input under a free-roaming mode or under an attraction mode; if the detected directional input is interpreted as an input under the free-roaming mode then determining an end position at a predetermined magnitude from the current position on a bearing determined by the detected directional input; if the detected directional input is interpreted as an input under the attraction mode then determining the end position as coincident with a selectable item; and enabling movement of the cursor from the current position to the determined end position.
17. An apparatus comprising a processor and a memory storing computer program code, wherein the memory and stored computer program code are configured, with the processor, to cause the apparatus to at least: cause display of a cursor and one or more items that are selectable using the cursor on a display; detect one of a plurality of possible directional input commands that control a position of the cursor in the display; determine a virtual jump in the position of the cursor from a current position to an end position; determine whether the end position is: a) a first end position at a predetermined magnitude from the current position on a bearing determined by the selected one of the directional inputs, wherein the end position is, by default, the first end position; or b) a second end position coinciding with a selectable item; and control movement of the cursor from the current position to the end position.
18. An apparatus as claimed in claim 17, sized to be held in a human hand.
19. A method comprising: (i) detecting one of a plurality of possible directional input commands for controlling the position of a cursor in a display; (ii) determining, by a processor, whether the detected directional input should be interpreted as an input under a free-roaming mode or under an attraction mode; (iii) if the detected directional input is interpreted as an input under the free-roaming mode then determining an end position at a predetermined magnitude from the current position on a bearing determined by the detected directional input; (iv)if the detected directional input is interpreted as an input under the attraction mode then determining the end position as coincident with a selectable item; (v) moving the cursor from the current position to the determined end position in a series of steps; and (vi) setting the end position as the current position.
20. An apparatus as claimed in claim 17, wherein the apparatus comprises a mobile computing device.
The challenge arising from the impulsive and unpredictable movement of the cursor has been addressed in the Symbian.TM. Series 60 operating system. In this system, the cursor does not have a `free-roaming` mode in which in can be moved over the display at the complete control of the user, instead the cursor in response to directional user input commands jumps only from one selectable item directly to another selectable item. Although this mechanism may be suitable for selecting icons in a menu having a `designed` layout it is less suitable for navigating to an arbitrary selectable item in the display, such as a character within a text block or a hyperlink in a HTML page.
According to one embodiment of the invention there is provided a method comprising: (i) detecting one of a plurality of possible directional input commands for controlling the position of a cursor in a display; (ii) determining a virtual jump in the position of the cursor from a current position to an end position wherein the end position is: a) a first end position at a predetermined magnitude from the current position on a bearing determined by the detected directional input or b) a second end position coinciding with a selectable item; (iii) moving the cursor from the current position to the end position in a series of steps; and (iv) setting the end position as the current position.
According to another embodiment of the invention there is provided a device comprising: a display for displaying a cursor and one or more items that are selectable using the cursor; user input device for providing a plurality of possible directional input commands that control a position of the cursor in the display; a processor operable: to determine a virtual jump in the position of the cursor from a current position to a end position; to determine whether an end position is: a) a first end position at a predetermined magnitude from the current position on a bearing determined by the selected one of the directional inputs or b) a second end position coinciding with a selectable item; and to control movement of the cursor from the current position to the end position in a series of steps,
According to a further embodiment of the invention there is provided a method comprising: (i) detecting one of a plurality of possible directional input commands for controlling the position of a cursor in a display; (ii) determining whether the detected directional input should be interpreted as an input under a free-roaming mode or under an attraction mode (iii) if the detected directional input is interpreted as an input under the free-roaming mode then determining an end position at a predetermined magnitude from the current position on a bearing determined by the detected directional input (iv) if the detected directional input is interpreted as an input under the attraction mode then determining the end position as coincident with a selectable item; (v) moving the cursor from the current position to the determined end position in a series of steps; and (vi) setting the end position as the current position.
According to another embodiment of the invention there is provided a computer program operable to: determine whether a detected directional input should be interpreted as an input under a free-roaming mode or under an attraction mode, if the detected directional input is interpreted as an input under the free-roaming mode then determine an end position at a predetermined magnitude from the current position on a bearing determined by the detected directional input, if the detected directional input is interpreted as an input under the attraction mode then determine the end position as coincident with a selectable item, and enable movement of the cursor from the current position to the determined end position.
The processor 18 under the control of the computer program 16 is operable as a cursor controller. The cursor controller 18 determines intelligently whether an input directional command 23 should be interpreted as a command under a `free-roaming mode` or under an `attraction mode.`
In a `free-roaming` mode, a cursor 6 moves in a direction or bearing within the GUI 2 that is at the complete control of the directional input commands 23. This enables a user to move the cursor 6 towards an arbitrary position in the GUI 2 which may or may not correspond with a selectable item 4. A directional input command 23 under a free-roaming mode therefore completely specifies the direction of movement of the cursor 6 in response to that command. A directional input command 23 in this mode will typically result in the cursor moving a predetermined fixed offset 11 from the current position on a bearing that is determined by the particular directional input command. The predetermined magnitude of the offset 11 is fixed at a value for each bearing, which may be the same for all bearings.
In an `attraction mode`, a cursor 6 moves to overlie a target selectable item 4. The target selectable item may be determined from possible selectable items by using, in part, an input directional command 23. However, the input directional command 23 does not completely specify the direction of movement of the cursor 6 in response to that command, instead the cursor 6 is `attracted` to the target selectable item 4. This helps a user easily place a cursor 6 over a selectable item 4 and improves the usability of the electronic device 10. A directional input command 23 in this mode will typically result in the cursor 6 moving directly to overlie a selectable item 4. The magnitude by which the cursor 6 moves may be variable and the bearing on which the cursor moves may be influenced by but is not determined by the particular directional input command 23 that causes the movement.
Referring to FIG. 5, the movement of a cursor 6 in response to three repeated `N` input directional commands is illustrated as dotted lines. The cursor 6 moves in three jump sequences A, B, C to the selectable item 4. The jump sequences A and B occur under the `free-roaming` mode. The magnitude of the jumps A and B is the same and the bearing of the jumps is specified by the input directional command 23. The jump sequence C occurs under the `attraction mode`. The magnitude of the jump C is unrelated to the magnitude of A and B and the bearing of the jump is not determined by the respective input directional command 23 for that jump.
The movement of a cursor 6 in response to three repeated input directional commands 23 from a different starting point is also illustrated as dotted lines. The cursor moves in three jump sequences A', B', C' to an arbitrary location in the GUI 2. The jump sequences A', B' and C' all occur under the `free-roaming` mode. The magnitude of the jumps A', B' and C' are the same as A and B and the bearing of the jumps is specified by the input directional commands 23. The jump sequence C' occurs under the `free roaming` mode as opposed to the `attraction mode` because, for example, the trajectory A', B' is different to A, B and in particular because the end point of the jumps B and B' are at different locations. However, whether a particular jump occurs under the `free roaming` mode of the `attraction` mode is not necessarily deterministic and there may be a random element introduced into the decision process.
The movement of the cursor 6 from its current position to an end position in response to an input directional command 23 is smooth and continuous in either of the modes. The trajectory from the current position 5, 5' of the cursor 6, at the time the directional input command 23 is detected, to the determined end point 7, 7' is determined and the cursor 6 is then moved along the trajectory C, C' in a series of discrete steps over a predetermined time interval. The discrete steps are typically a plurality of pixels in size. The transition between the discrete steps is instantaneous so that the cursor 6 appears to move in a continuous manner similar to the movement produced by a desktop computer mouse. Furthermore, speed at which the cursor moves over a trajectory is typically constant.
If the detected directional input command 23 is interpreted as an input under the free-roaming mode then the cursor controller 18 determines an end position 7' at a predetermined magnitude from the current position 5' on a bearing determined by the detected directional input command 23.
A user is therefore able to easily navigate to a selectable item that has a `designed` predetermined position (e.g. an icon in a menu) or easily navigate to a selectable item that has an arbitrary position such as a character within a text block or a hyperlink in a HTML page. The cursor 6 moves smoothly across the GUI 2 and intelligently points to selectable items.
If oscillating movement of the cursor is detected at step 31, the predetermined off-set 11 is reduced at step 31' and the data structure 16 that records the history and timings of the directional input commands 23 used is updated at step 40. A `flipping` or oscillating flag F is set which is used at step 37. This combination of steps allows a user to more easily place the cursor 6 on small selectable items.
Then at step 32, it is assumed as a default condition that the detected directional input command 23 should be interpreted as commanding a jump in the cursor position under a free-roaming mode. A putative end position 9 is generated as a predetermined offset 11 from the current cursor position 5, 5' as illustrated in FIG. 6. The bearing of the offset 11 relative to the current position is specified by the detected directional input command. The magnitude of the offset 11 may be a constant for all bearings or may be a constant for each bearing. It may also have been adjusted in step 31'.
The intermediate positions 3 may be generated with a random component. For example, a virtual intermediate position 3 may be created by determining a trajectory of the cursor 6 to reach the putative end position 9, randomly selecting a point along the trajectory and applying a random off-set to the selected point to generate the virtual intermediate position 3. Certain bounds may be placed on the maximum size of the random off-set. Thus the virtual intermediate positions 3 `trail` the putative end position 9 as illustrated in FIG. 6.
At step 56, if the search is successful then the putative position of the cursor is changed at step 42 (FIGS. 1 and 2) to coincide with the selectable item. If the search for that virtual intermediate position is unsuccessful the method moves to step 62. If multiple selectable items are discovered then a `best` candidate may be selected. The best selectable item may be, for example, the selectable item that is located closest to the current position or to the currently selected item. Other algorithms may be used to determine the closest selectable item.
Then at step 82, a search area is generated symmetrically along the vector .nu.. The search area extends from the current position along the vector, and beyond the putative end position 9. The extent of the search may have a predefined maximum.
Previous Patent US 8,330,714 | Next Patent US 8,330,716