IP Library Granted Patent US 12,437,145
Granted Patent B1
US 12,437,145 · App. 18/538,786 · Granted Oct 7, 2025

Inferred event detection and text processing using transparent windows

Inventors: 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); Yura Tanskiy (San Francisco, CA)
G06F40/117G06F9/541G06F16/986G06F40/166
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,437,145
App. No.
18/538,786
Granted
Oct 7, 2025
Kind
B1
Abstract

In one embodiment, the disclosure provides a computer-implemented or programmed method, comprising: causing subscribing to a plurality of events provided by a first application programming interface; receiving a layout change event pushed from the first application programming interface; determining that a change in focused element resulted in a currently focused element; causing generating a transparent window on top of the currently focused element; causing receiving one or more character ranges respectively associated with one or more types of markup; causing determining one or more screen bounds corresponding to the one or more character ranges; and, causing respectively displaying, in the transparent window, the one or more types of markup at the screen bounds corresponding to the one or more character ranges associated with that type of markup.

Claims (38)

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.

2. The computer-implemented method of claim 1 , at least one of the first application programming interface or the second application programming interface being one of UI Automation, 1Accessible2, or OS X Accessibility.

3. The computer-implemented method of claim 1 , wherein one of the one or more types of markup is underlining.

4. The computer-implemented method of claim 1 , further comprising:

executing the plurality of checks of the source text by executing a trained machine learning model on the source text, thereby outputting information specifying the one or more types of markup and the one or more character ranges associated with that type of markup.

5. The computer-implemented method of claim 1 , further comprising programmatically generating one or more markup objects, the one or more markup objects corresponding to the one or more types of markup to be applied to one or more character ranges of the source text.

6. The computer-implemented method of claim 5 , at least one of the one or more markup objects being an underline object.

7. The computer-implemented method of claim 4 , wherein the trained machine learning model comprises a trained multi-class text classifier comprising a FASTTEXT classifier.

8. One or more computer-readable non-transitory storage media storing one or more sequences of instructions which, when executed using one or more processors, cause the one or more processors to execute:

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.

9. The one or more computer-readable non-transitory storage media of claim 8 , at least one of the first application programming interface or the second application programming interface being one of UI Automation, 1Accessible2, or OS X Accessibility.

10. The one or more computer-readable non-transitory storage media of claim 8 , wherein one of the one or more types of markup is underlining.

11. The one or more computer-readable non-transitory storage media of claim 8 , further comprising:

executing the plurality of checks of the source text by executing a trained machine learning model on the source text, thereby outputting information specifying the one or more types of markup and the one or more character ranges associated with that type of markup.

12. The one or more computer-readable non-transitory storage media of claim 8 , further comprising one or more sequences of instructions which, when executed using the one or more processors, cause the one or more processors to execute programmatically generating one or more markup objects, the one or more markup objects corresponding to the one or more types of markup to be applied to one or more character ranges of the source text.

13. The one or more computer-readable non-transitory storage media of claim 12 , wherein at least one of the one or more markup objects is an underline object.

14. The one or more computer-readable non-transitory storage media of claim 11 , wherein the trained machine learning model comprises a trained multi-class text classifier comprising a FASTTEXT classifier.

Assignments (2)
CHANGE OF NAME Recorded Nov 21, 2025
From: GRAMMARLY, INC.
To: SUPERHUMAN PLATFORM INC.
Reel/Frame 073655/0099 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2023
From: SHEVCHENKO, OLEKSIY; PAVLYCHKO, VICTOR; GAIDYLO, VALENTYN; VOLOBUIEV, NIKITA; RYSAI, IEVGEN; GULIAK, ROMAN; TANSKIY, YURA
To: GRAMMARLY, INC.
Reel/Frame 065861/0904 →
Continuity (1)
Continuation 17525727 · Nov 12, 2021
References Cited (21)
US 6342906B1 · Kumar · 2002 [cited by applicant]
US 6476831B1 · Wirth · 2002 [cited by applicant]
US 9026900B1 · Pugh · 2015 [cited by examiner]
US 11361151B1 · Guberman et al. · 2022 [cited by applicant]
US 20020180689A1 · Venolia · 2002 [cited by applicant]
US 20070208994A1 · Reddel · 2007 [cited by applicant]
US 20110047503A1 · Allen, Jr. · 2011 [cited by applicant]
US 20110154507A1 · King · 2011 [cited by applicant]
US 20120146955A1 · Martin-Cocher · 2012 [cited by applicant]
US 20140359443A1 · Hwang · 2014 [cited by applicant]
US 20140380285A1 · Gabel · 2014 [cited by applicant]
US 20180336509A1 · Guttmann · 2018 [cited by examiner]
US 20200042584A1 · Vennix · 2020 [cited by examiner]
US 20200349464A1 · Lin · 2020 [cited by examiner]
US 20210334708A1 · Li · 2021 [cited by examiner]
US 20220129285A1 · Kwatra · 2022 [cited by examiner]
US 20220237800A1 · Iyer · 2022 [cited by applicant]
US 20220374585A1 · Wang · 2022 [cited by applicant]
US 20230123574A1 · Guberman et al. · 2023 [cited by applicant]
US 20230140981A1 · Pouran Ben Veyseh · 2023 [cited by examiner]
US 20230274481A1 · Gustman · 2023 [cited by examiner]