IP Library › Granted Patent US 12,067,174
Granted Patent B2
US 12,067,174 · App. 17/481,746 · Granted Aug 20, 2024

Text input synchronization for remote applications

Inventors: Wang Yiming (Nanjing, CN); Tao Yin (Nanjing, CN); Cungang Lin (Nanjing, CN); Hao Wu (Nanjing, CN); Sujie Li (Nanjing, CN)
Assignee: Citrix Systems, Inc.
G06F3/0236G06F3/0481G06F3/1454
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 12,067,174
App. No.
17/481,746
Granted
Aug 20, 2024
Kind
B2
Abstract

In some embodiments, a method includes: receiving, by a first computing device, text composed using a composition window of a second computing device; entering, by the first computing device, the composed text into a text input of an application executing on the first computing device; determining, by the first computing device, one or more attributes of a cursor of the text input, the one or more attributes of the cursor including at least a position of the cursor; and sending, by the first computing device, the one or more attributes of the cursor to the second computing device, the second computing device configured to display the application and to position the composition window relative to the displayed application based on the position of the cursor determined by the first computing device.

Claims (52)

1. A method comprising:

receiving, by a first computing device, text composed using a composition window rendered initially and locally by a second computing device distinct from the first computing device;

entering, by the first computing device, the composed text into a text input of an application executing on the first computing device;

determining, by the first computing device, one or more attributes of a cursor of the text input, the one or more attributes of the cursor including at least a position of the cursor; and

sending, by the first computing device, the one or more attributes of the cursor to the second computing device, the second computing device configured to display the application and to position the composition window relative to the displayed application based on the position of the cursor determined by the first computing device.

2. The method of claim 1 , wherein the composition window is part of an input method editor (IME) executing on the second computing device, wherein the composition window is configured to receive a sequence of characters entered using an input device of the second computing device and to generate characters not natively available on the input device of the second computing device using the received sequence of characters, wherein the composed text received by the first computing device corresponds to the generated characters not natively available on the input device of the second computing device.

3. The method of claim 2 , wherein the second computing device is configured to position a candidates window relative to the displayed application at a composition window position based on the position of the cursor sent by the first computing device and received by the second computing device, wherein the candidates window is also part of the IME executing on the second computing device.

4. The method of claim 1 , further comprising:

receiving, by the first computing device, a start composition request from the second computing device, the start composition request specifying a composition session identifier; and

initiating, by the first computing device and in response to the start composition request, a composition session with the second computing device, the composition session associated with the application executing on the first computing device and associated with the composition session identifier.

5. The method of claim 1 , further comprising:

receiving, by the first computing device, a cursor attribute request for the one or more attributes of the cursor,

wherein the sending of the one or more attributes of the cursor to the second computing device is responsive to the receiving the cursor attribute_request for the one or more attributes of the cursor.

6. The method of claim 1 , further comprising:

responsive to detecting a change in the position of the cursor, sending the changed position of the cursor to the second computing device.

7. The method of claim 1 , wherein the one or more attributes of the cursor includes a height of the cursor, wherein the second computing device is configured to adjust a font size of the composition window based on the height of the cursor.

8. The method of claim 1 , wherein the application is a web application and the text input is an HTML element of the web application.

9. The method of claim 1 , wherein the application is executing within a virtual machine (VM) on the first computing device.

10. The method of claim 1 , further comprising:

rendering, locally via the second computing device, the composition window;

displaying, by the second computing device, the composition window in conjunction with at least one element rendered by the first computing device;

receiving, via an input device of the second computing device, one or more keystrokes corresponding to one or more characters;

entering the one or more characters into the composition window as composed text; and

transmitting, by the second computing device, the composed text to the first computing device.

11. The method of claim 1 , wherein:

receiving, by the first computing device, the text comprises receiving, by the first computing device, a message comprising a composition session identifier and the text;

the text input of the application executing on the first computing device is associated with the composition session identifier; and

sending, by the first computing device, the one or more attributes of the cursor to the second computing device comprises sending, by the first computing device, the composition session identifier and the one or more attributes of the cursor to the second computing device.

12. The method of claim 11 , wherein the receiving of the text composed using the second computing device includes receiving the composed text over a text input synchronization channel of a remote display protocol, wherein the composition session identifier is associated with the text input synchronization channel.

13. The method of claim 12 , wherein the remote display protocol includes a keyboard channel separate from the text input synchronization channel over which the composed text is received.

14. A method comprising:

sending, by a first computing device distinct from a second computing device, text composed using an initially and locally rendered composition window of the first computing device to the second computing device, the second computing device configured to enter the composed text into a text input of an application executing on the second computing device and to determine one or more attributes of a cursor of the text input, the one or more attributes of the cursor including at least a position of the cursor;

receiving, by the first computing device, the one or more attributes of the cursor from the second computing device, the first computing device displaying the application executing on the second computing device; and

positioning, by the first computing device, the composition window relative to the displayed application based on the position of the cursor determined by the second computing device.

15. The method of claim 14 , wherein the composition window is part of an input method editor (IME) executing on the first computing device, wherein the composition window is configured to receive a sequence of characters entered using an input device of the first computing device and to generate characters not natively available on the input device of the first computing device using the received sequence of characters, wherein the composed text sent to the second computing device corresponds to the generated characters not natively available on the input device of the first computing device.

16. The method of claim 15 , further comprising:

positioning, by the first computing device, a candidates window relative to the displayed application at a composition window position based on the position of the cursor sent by the second computing device and received by the first computing device, wherein the candidates window is also part of the IME executing on the first computing device.

17. The method of claim 14 , wherein the sending of the text composed using the first computing device includes sending the composed text over a text input synchronization channel of a remote display protocol.

18. The method of claim 17 , wherein the remote display protocol includes a keyboard channel separate from the text input synchronization channel over which the composed text is received.

19. The method of claim 14 , further comprising:

sending, by the first computing device, a start composition request to the second computing device, the start composition request specifying a composition session identifier; and

initiating, by the first computing device, a composition session with the second computing device, the composition session associated with the application executing on the second computing device and associated with the composition session identifier.

20. The method of claim 14 , further comprising:

sending, by the first computing device, a cursor attribute request for the one or more attributes of the cursor,

wherein the receiving of the one or more attributes of the cursor from the second computing device is responsive to the sending of the cursor attribute request for the one or more attributes of the cursor.

21. A computing device comprising:

a processor; and

a non-volatile memory storing computer program code that when executed on the processor causes the processor to execute a process comprising:

receiving text composed using a text input initially and locally rendered by another computing device distinct from the computing device;

entering the composed text into a text input of an application executing on the computing device;

determining one or more attributes of a cursor of the text input, the one or more attributes of the cursor including at least a position of the cursor; and

sending the one or more attributes of the cursor to the another computing device, the another computing device configured to display the application and to position a composition window relative to the displayed application based on the position of the cursor determined by the computing device.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2021
From: YIN, TAO; LIN, CUNGANG; WU, HAO; LI, SUJE; YIMING, WANG
To: CITRIX SYSTEMS, INC.
Reel/Frame 057606/0079 →
Continuity (2)
Continuation PCTCN2021112941 · Aug 17, 2021
Related Publication 20230056176A1 · Feb 23, 2023
Cited By (1)
US 12,717,423