Externalized execution of input method editor
AssigneeMicrosoft Technology Licensing, LLC
InventorsXin Gong, Daniel Chang, Sameer Garde, Drew Elliott Linerud, Eric Norman Badger
Life of this patent
Estimating the term…
Abstract
A facility for processing textual input generated with a user input device described. In one example facility, the facility stores the textual input in a first data structure contained in the address space of a first process. The facility synchronizes contents of the first data structure to a second data structure contained in the address space of a second process distinct from the first process, an application executing in the second process being configured to consume textual input synchronized to the second data structure.
Claims18
A computing system for providing textual output of an input method editor to an application, the computing system comprising:
- a first memory region that stores a first version of a body of text to which textual output of the input method editor is applied;
- a second memory region that stores a second version of a body of text to which text modifications performed by the application are applied;
- and
- a reconciliation subsystem configured to reconcile the contents of the first and second memory regions in a manner that favors the contents of the second memory region, including:
- reversing edits made by the input method editor to text stored in the first memory region;
- and
- applying text modifications performed by the application to the text stored in the first memory region.
A non-transitory computer-readable storage medium having contents configured to cause a computing system to, in order to process textual input generated with a user input device:
- store the textual input in a first data structure contained in the address space of a first process;
- and
- synchronize contents of the first data structure to a second data structure contained in the address space of a second process distinct from the first process, an application executing in the second process being configured to apply textual input to the second data structure,
- wherein in response to a collision between synchronizing contents of the first data structure to the second data structure and synchronizing contents of the second data structure to the first data structure:
- reversing application of colliding textual input made by the first process to the first data structure;
- and
- applying textual input made by the application to the first data structure.
A non-transitory computer-readable storage medium storing a text synchronization data structure relating to a first buffer, (1) textual user input having been applied to the first buffer, and (2) application text changes synchronized from a second buffer having been applied to the first buffer, the data structure comprising:
- one or more first entries, each first entry containing information identifying an editing action that (a) has been applied to the first buffer in response to textual user input, (b) has been communicated to the second buffer, and (c) has not been acknowledged by the second buffer,
- such that the contents of the first entries are usable to reverse editing actions that have been applied to the first buffer and are incompatible with application text changes to the second buffer.
Dependencies are inferred from the claim text.