US 12,437,145 B1
Inferred event detection and text processing using transparent windows
Oleksiy Shevchenko, Vancouver (CA); Victor Pavlychko, Kyiv (UA); Valentyn Gaidylo, Kyiv (UA); Nikita Volobuiev, Kyiv (UA); Ievgen Rysai, Kyiv (UA); Roman Guliak, New York, NY (US); and Yura Tanskiy, San Francisco, CA (US)
Assigned to GRAMMARLY, INC.
Filed by Grammarly, Inc., San Francisco, CA (US)
Filed on Dec. 13, 2023, as Appl. No. 18/538,786.
Application 18/538,786 is a continuation of application No. 17/525,727, filed on Nov. 12, 2021, granted, now 11,880,644.
Int. Cl. G06F 17/00 (2019.01); G06F 9/54 (2006.01); G06F 16/958 (2019.01); G06F 40/117 (2020.01); G06F 40/166 (2020.01)
CPC G06F 40/117 (2020.01) [G06F 9/541 (2013.01); G06F 16/986 (2019.01); G06F 40/166 (2020.01)] 14 Claims
OG exemplary drawing
 
1. A computer-implemented method comprising:
causing executing, at a computer, first programmed instructions formatted to cause subscribing, by an application program executing on the computer, to a plurality of events provided by a first application programming interface;
receiving, by the application program, a layout change event pushed from the first application programming interface;
responsive to receiving the layout change event, determining, by the application program, that a change in focused element resulted in a currently focused element, by:
querying a second application programming interface,
receiving, from the second application programming interface, data indicative of the currently focused element, in response to the querying of the second application programming interface, and
comparing the currently focused element to a previously focused element programmatically stored by the application program, wherein the currently focused element and the previously focused element are different text-editing regions of a display;
causing executing, at the computer, second programmed instructions formatted to cause generating a transparent window on top of the currently focused element;
receiving, from the currently focused element, a digital electronic object comprising a source text;
causing executing, at the computer, third programmed instructions formatted to cause receiving one or more character ranges respectively associated with one or more types of markup;
causing executing, at the computer, fourth programmed instructions formatted to cause determining one or more screen bounds corresponding to the one or more character ranges; and
causing executing, at the computer, fifth programmed instructions formatted to cause respectively displaying, in the transparent window, the one or more types of markup at the one or more screen bounds corresponding to the one or more character ranges associated with that type of markup, including generating each type of markup corresponding to the one or more character ranges by a text processor executing a plurality of checks of the source text.