IP Library Granted Patent US 12,423,517
Granted Patent B1
US 12,423,517 · App. 18/732,543 · Granted Sep 23, 2025

Systems and methods for providing a collaborative document environment

Inventors: Kevin Markman (New York, NY); Kevin Winter (Metuchen, NJ); Luiz Do Amaral De Franca Pereira Filho (Jersey City, NJ); Yunchi Luo (East Amherst, NY)
Assignee: Google LLC
G06F40/197G06F40/103G06F40/169G06Q10/101G06Q10/103H04L67/10
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,423,517
App. No.
18/732,543
Granted
Sep 23, 2025
Kind
B1
Abstract

Systems and methods are disclosed for sharing a unified undo/redo stack between multiple applications. A method determining that a host application receives an action regarding a document, adding the action to a unified stack that is associated with undo commands and is shared between the host application and a secondary application, receiving an undo command from the host application or the secondary application, and retrieving the undo command from the unified stack to cause the action to be undone in the host application and the secondary application.

Claims (46)

1. A method comprising:

determining that a host application receives an action regarding a document, wherein the action comprises a user change made to the document via the host application;

adding the action regarding the document to a unified stack that is associated with undo commands, wherein at least a portion of the document is editable via the host application and a secondary application;

receiving an undo command from the secondary application; and

responsive to receiving the undo command, causing the user change made to the document via the host application to be undone in the secondary application based on the action regarding the document in the unified stack.

2. The method of claim 1 further comprising:

determining that the host application receives a second action regarding the document;

adding the second action to a unified stack that is associated with redo commands;

receiving a redo command from the host application or the secondary application; and

retrieving the redo command from the unified stack to cause the second action to be redone in at least one of the host application or the secondary application.

3. The method of claim 2 wherein the unified stack associated with the undo commands is the same as the unified stack associated with the redo commands.

4. The method of claim 1 wherein the secondary application is embedded within the host application.

5. The method of claim 1 wherein the host application is a document application and the secondary application is a spreadsheet application.

6. The method of claim 1 wherein the action pertains to adding text to the document or adding a comment to the document.

7. The method of claim 6 wherein the undo command regarding the comment corresponds to one of: user input indicating a request to undo a suggested edit to the document, user input indicating a request to delete the comment via a user interface for a comment section, or user input indicating a request to delete the comment and synchronize the deletion with another user device.

8. The method of claim 1 wherein determining that the host application receives the action pertaining to the document comprises:

determining whether the host application receives the action from the secondary application or directly; and

responsive to determining that the host application receives the action from the secondary application, canceling the action from the second application.

9. The method of claim 1 wherein determining that the host application receives the action pertaining to the document further comprises:

determining whether the host application receives the action from the secondary application or directly; and

responsive to determining that the host application receives the action directly, refraining from canceling the action from the second application.

10. The method of claim 1 wherein the unified stack is shared between the host application and the secondary application.

11. The method of claim 10 wherein the unified stack is synchronized between the host application and the secondary application.

12. The method of claim 1 wherein the host application is responsible for the unified stack and acts as a proxy for actions received from the secondary application.

13. Non-transitory computer-readable media having recorded thereon instructions, that when executed by one or more computer processors, perform operations comprising:

determining that a host application receives an action regarding a document, wherein the action comprises a user change made to the document via the host application;

adding the action regarding the document to a unified stack that is associated with undo commands, wherein at least a portion of the document is editable via the host application and a secondary application;

receiving an undo command from the secondary application; and

responsive to receiving the undo command, causing the user change made to the document via the host application to be undone in the secondary application based on the action regarding the document in the unified stack.

14. The computer-readable media of claim 13 wherein the operations further comprise:

determining that the host application receives a second action regarding the document;

adding the second action to a unified stack that is associated with redo commands;

receiving a redo command from the host application or the secondary application; and

retrieving the redo command from the unified stack to cause the second action to be redone in at least one of the host application or the secondary application.

15. The computer-readable media of claim 14 wherein the unified stack associated with the undo commands is the same as the unified stack associated with the redo commands.

16. The computer-readable media of claim 13 wherein the secondary application is embedded within the host application.

17. The computer-readable media of claim 13 wherein the unified stack is shared between the host application and the secondary application.

18. A system comprising:

a memory; and

a processing device, coupled to the memory, to perform operations comprising:

determining that a host application receives an action regarding a document, wherein the action comprises a user change made to the document via the host application;

adding the action regarding the document to a unified stack that is associated with undo commands, wherein at least a portion of the document is editable via the host application and a secondary application;

receiving an undo command from the secondary application; and

responsive to receiving the undo command, causing the user change made to the document via the host application to be undone in the secondary application based on the action regarding the document in the unified stack.

19. The system of claim 18 wherein the unified stack is shared and synchronized between the host application and the secondary application.

20. The system of claim 18 wherein the host application is responsible for the unified stack and acts as a proxy for actions received from the secondary application.

Assignments (2)
CHANGE OF NAME Recorded Nov 19, 2024
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 069391/0809 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 5, 2024
From: MARKMAN, KEVIN; WINTER, KEVIN; PEREIRA FILHO, LUIZ DO AMARAL DE FRANCA; LUO, YUNCHI
To: GOOGLE INC.
Reel/Frame 069150/0592 →
Continuity (8)
Continuation 17733959 · Apr 29, 2022
Continuation 17671528 · Feb 14, 2022
Continuation 15793868 · Oct 25, 2017
Continuation 14749326 · Jun 24, 2015
Provisional Application 62061889 · Oct 9, 2014
Provisional Application 62016349 · Jun 24, 2014
Provisional Application 62016282 · Jun 24, 2014
Provisional Application 62016275 · Jun 24, 2014
References Cited (51)
US 7222156B2 · Gupta et al. · 2007 [cited by applicant]
US 7370060B2 · Jain et al. · 2008 [cited by applicant]
US 7953696B2 · Davis · 2011 [cited by examiner]
US 8108464B1 · Rochelle et al. · 2012 [cited by applicant]
US 8473847B2 · Glover · 2013 [cited by applicant]
US 8682989B2 · Meisels et al. · 2014 [cited by applicant]
US 8869046B2 · Brown et al. · 2014 [cited by applicant]
US 9053079B2 · Bailor et al. · 2015 [cited by applicant]
US 9208137B2 · Ginetti · 2015 [cited by applicant]
US D754168S · Vazquez et al. · 2016 [cited by applicant]
US 9329762B1 · Schultz et al. · 2016 [cited by applicant]
US 9383888B2 · Fish et al. · 2016 [cited by applicant]
US 9479605B2 · Kleppner et al. · 2016 [cited by applicant]
US 9552340B2 · Marsh · 2017 [cited by applicant]
US 9607278B2 · Zaveri · 2017 [cited by applicant]
US 9817805B1 · Markman · 2017 [cited by examiner]
US 9948988B2 · Findlay et al. · 2018 [cited by applicant]
US 10025759B2 · Mulder · 2018 [cited by applicant]
US 10067927B2 · Myerscough et al. · 2018 [cited by applicant]
US 10225291B2 · Wilde et al. · 2019 [cited by applicant]
US 20020091768A1 · Balasubramanian · 2002 [cited by applicant]
US 20040172377A1 · Saitou et al. · 2004 [cited by applicant]
US 20070061382A1 · Davis et al. · 2007 [cited by applicant]
US 20070271502A1 · Bedi et al. · 2007 [cited by applicant]
US 20080162549A1 · Foti · 2008 [cited by examiner]
US 20100281362A1 · Bailor et al. · 2010 [cited by applicant]
US 20100313158A1 · Lee et al. · 2010 [cited by applicant]
US 20110296507A1 · Khosrowshahi et al. · 2011 [cited by applicant]
US 20120036456A1 · Grunberger · 2012 [cited by applicant]
US 20120109590A1 · Trainer · 2012 [cited by examiner]
US 20120109592A1 · Potter · 2012 [cited by examiner]
US 20120110595A1 · Reitman · 2012 [cited by examiner]
US 20120136862A1 · Glover · 2012 [cited by applicant]
US 20120166282A1 · Reis et al. · 2012 [cited by applicant]
US 20120166540A1 · Reis et al. · 2012 [cited by applicant]
US 20120278401A1 · Meisels et al. · 2012 [cited by applicant]
US 20120284344A1 · Costenaro et al. · 2012 [cited by applicant]
US 20120284618A1 · Bailor et al. · 2012 [cited by applicant]
US 20130151940A1 · Bailor et al. · 2013 [cited by applicant]
US 20130275885A1 · Spataro et al. · 2013 [cited by applicant]
US 20140019585A1 · Mshnubhatla et al. · 2014 [cited by applicant]
US 20140033088A1 · Shaver · 2014 [cited by applicant]
US 20140149857A1 · Vagell et al. · 2014 [cited by applicant]
US 20140289645A1 · Megiddo et al. · 2014 [cited by applicant]
US 20140310345A1 · Megiddo et al. · 2014 [cited by applicant]
US 20140372855A1 · Myerscough et al. · 2014 [cited by applicant]
US 20150186350A1 · Hicks · 2015 [cited by applicant]
US 20150269146A1 · Ayyar et al. · 2015 [cited by applicant]
US 20160321227A1 · Keslin et al. · 2016 [cited by applicant]
US 20160357720A1 · Thimbleby · 2016 [cited by applicant]
US 20160378725A1 · Marchsreiter · 2016 [cited by applicant]