IP Library Granted Patent US 7,073,138
Granted Patent B2
US 7,073,138 · App. 10/456,802 · Granted Jul 4, 2006

Method and apparatus for cursor positioning in bi-directional text

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 7,073,138
App. No.
10/456,802
Granted
Jul 4, 2006
Kind
B2
Abstract

A cursor is moved through regions of text 300 having differing directions to a location visually adjacent to a previous cursor location. The cursor is moved in the direction of requested cursor movement even when moving from text having a first direction to text having a second direction. A comparison of direction for current and proposed cursor locations is made 810 in both a method and apparatus for so moving the cursor. The direction of a character to be inserted is also examined 816 in determining the next location of the cursor.

Claims (54)

1. A method to facilitate a user interface by moving a cursor across bi-directional characters on a display, the method comprising:

calculating in a processor, responsive to a request for cursor movement and in accordance with a deterministic algorithm, a next position of the cursor when traversing from a first character having a first direction to a second character having a second direction;

determining whether the next position is within a valid range including

assigning a value to each character in a string comprising the bi-directional characters corresponding to an order entered; and

determining that the next position is greater than or equal to the value for the first character and less than or equal to one plus the value for a latest character; and

moving the cursor to the next position, the next position being visually adjacent to a current position of the cursor.

2. The method of claim 1 wherein the calculating the next position utilizes one of a current position of the cursor, the request for cursor movement, a primary direction for a string comprising the bi-directional characters, and a direction for a next character.

3. The method of claim 1 wherein the calculating the next position further comprises:

determining a current character direction;

determining a next position direction;

determining whether the next position direction matches the current character direction to give a result; and

calculating the next position according to the result.

4. The method of claim 3 wherein the determining the next position direction further comprises:

determining an additional position direction when the next position direction is indeterminate.

5. The method of claim 1 wherein calculating the next position further comprises:

assigning the first direction to be left-to-right and assigning the second direction to be right-to-left when a primary direction of a string comprising the bi-directional characters is left-to-right.

6. A software program to implement a user interface for moving a cursor through bi-directional text on a display, the software program when installed and operating on a processor resulting in the processor:

responsive to a request for cursor movement, calculating a next deterministic position of the cursor when traversing from a first character having a first direction to a second character having a second direction; where

the calculating the next position determines whether the next position is within a valid range, and

assigns a value to each character in the bi-directional text corresponding to the order entered; and

determines that the next position is greater than or equal to the value of the first character and less than or equal to one plus the value of the latest character; and

moving the cursor to the next deterministic position, the next deterministic position being visually adjacent to a current position of the cursor.

7. The software program of claim 6 wherein the calculating the next position uses one of a current position of the cursor, the request for cursor movement, a primary direction for the bi-directional text, and a direction for a next character.

8. The software program of claim 6 wherein the calculating the next position comprises:

determining a current character direction;

determining a next position direction;

determining whether the next position direction matches the current character direction to give a result; and

calculating the next position according to the result.

9. The software program of claim 8 wherein the calculating the next position direction comprises testing an additional position direction when the next position direction is indeterminate.

10. The software program of claim 6 wherein the calculating the next position assigns the first direction to be left-to-right and assigns the second direction to be right-to-left when a primary direction of a string comprising the bi-directional characters is left-to-right.

11. An electronic device arranged to support movement of a cursor through bi-directional text, the electronic device comprising:

a user interface comprising a display for displaying the bi-directional text and a cursor control for moving the cursor; and

a processor coupled to the user interface for moving the cursor responsive to the cursor control,

wherein the cursor is moved to an adjacent displayed location when traversing characters having different corresponding directions and wherein the processor determines that a next position for the cursor is within a valid range and calculates the next position by:

assigning a value to each character of the bi-directional text, the value corresponding to the order entered; and

determining that the next position is greater than or equal to the value for the first character and less than or equal to one plus the value for the latest character.

12. The electronic device of claim 11 wherein the cursor is moved in the direction of a request from the cursor control when traversing text having a different direction than a primary direction of the bi-directional text.

13. The electronic device of claim 11 wherein the processor is operable to calculate a next position of the cursor using a current position of the cursor, a request for cursor movement, a primary direction of the bi-directional text, and a direction for a next character.

14. The electronic device of claim 13 wherein the processor determines a next position direction when calculating the next position, and determines a direction of an additional position when the next position direction is indeterminate.

15. A method to facilitate a user interface including moving a cursor through a string of characters on a display, the characters being bi-directional characters, the method comprising:

calculating in a processor and in accordance with a deterministic algorithm, responsive to a request for cursor movement, a next position of the cursor when traversing from a first character corresponding to a first language wherein text of the first language is read in a first direction to a second character corresponding to a second language wherein text of the second language is read in a direction opposite to the first direction wherein the calculating the next position utilizes a current position of the cursor, the request for cursor movement, a primary direction for the string comprising the bi-directional characters, and a direction for a next character;

determining whether the next position is within a valid range of positions including:

assigning a value to each character in the string comprising the bi-directional characters, the value corresponding to the order of entry for the each character; and

determining that the next position is greater than or equal to the value for the first character and less than or equal to one plus the value for a latest character; and

moving the cursor to the next position, the next position being visually adjacent to a current position of the cursor.

16. The method of claim 15 wherein the calculating the next position further comprises:

determining a direction of cursor movement corresponding to a current character;

determining a next direction of cursor movement corresponding to a next position;

determining whether the next direction of cursor movement matches the direction of cursor movement corresponding to the current character to give a result; and

calculating the next position according to the result.

17. The method of claim 16 wherein the determining the next direction of cursor movement further comprises:

determining an additional direction when the next direction of cursor movement is indeterminate.

18. The method of claim 15 wherein calculating the next position further comprises:

assigning the first direction to be left-to-right and assigning the second direction to be right-to-left, when a primary direction of the string comprising the bi-directional characters is left-to-right.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 25, 2014
From: MOTOROLA MOBILITY LLC
To: GOOGLE TECHNOLOGY HOLDINGS LLC
Reel/Frame 034449/0001 →
CHANGE OF NAME Recorded Oct 2, 2012
From: MOTOROLA MOBILITY, INC.
To: MOTOROLA MOBILITY LLC
Reel/Frame 029216/0282 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2010
From: MOTOROLA, INC
To: MOTOROLA MOBILITY, INC
Reel/Frame 025673/0558 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2003
From: MIRKIN, EUGENE
To: MOTOROLA, INC.
Reel/Frame 014165/0423 →