# US 12,001,784 B1 · Systems and methods for providing a collaborative document environment

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,001,784 B1
- Document ID: US12001784B1
- Status: Granted
- Kind: B1
- Application number: 17/733,959
- Filed: 2022-04-29
- Granted: 2024-06-04
- Earliest claimed: 2014-06-24
- Assignees: Google Inc.
- Applicants: Google LLC
- Inventors: Kevin Markman; Kevin Winter; Luiz Do Amaral De Franca Pereira Filho; Yunchi Luo
- Web page: https://patentgrep.com/patent/US12001784B1

## CPC

- G06F 40/197: Version control (for software G06F8/71)
- G06Q 10/10: Office automation; Time management
- G06F 40/103: Formatting, i.e. changing of presentation of documents (automatic justification G06F40/189; automatic line break hyphenation G06F40/191)
- G06F 40/169: Annotation, e.g. comment data or footnotes
- G06Q 10/101: Collaborative creation, e.g. joint development of products or services
- G06Q 10/103: {Workflow collaboration or project management}
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## 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

### Claim 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 and is shared between the host application and a secondary application, wherein at least a portion of the document is editable via the host application and the secondary application;
receiving an undo command from the secondary application; and
retrieving the undo command from the unified stack to cause the user change made to the document via the host application to be undone in the secondary application.

### Claim 2 (depends on 1)

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 and is shared between the host application and the secondary application;
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.

### Claim 3 (depends on 2)

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.

### Claim 4 (depends on 1)

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

### Claim 5 (depends on 1)

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

### Claim 6 (depends on 1)

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

### Claim 7 (depends on 6)

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.

### Claim 8 (depends on 1)

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.

### Claim 9 (depends on 1)

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.

### Claim 10 (depends on 1)

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

### Claim 11

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 and is shared between the host application and a secondary application, wherein at least a portion of the document is editable via the first host application and the secondary application;
receiving an undo command from the secondary application; and
retrieving the undo command from the unified stack to cause the user change made to the document via the host application to be undone in the secondary application.

### Claim 12 (depends on 11)

The non-transitory computer-readable media of claim 11 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 and is shared between the host application and the secondary application;
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.

### Claim 13 (depends on 11)

The non-transitory computer-readable media of claim 11 wherein the secondary application is embedded within the host application, and wherein the host application is a document application and the secondary application is a spreadsheet application.

### Claim 14 (depends on 11)

The non-transitory computer-readable media of claim 11 wherein the action pertains to adding a comment to the document, and 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.

### Claim 15 (depends on 11)

The non-transitory computer-readable media of claim 11 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.

### Claim 16 (depends on 11)

The non-transitory computer-readable media of claim 11 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.

### Claim 17

A system comprising:
a memory; and
one or more processors, 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 and is shared between the host application and a secondary application, wherein at least a portion of the document is editable via the first host application and the secondary application;
receiving an undo command from the secondary application; and
retrieving the undo command from the unified stack to cause the user change made to the document via the host application to be undone in the secondary application.

### Claim 18 (depends on 17)

The system of claim 17 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 and is shared between the host application and the secondary application;
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.

### Claim 19 (depends on 17)

The system of claim 17 wherein the secondary application is embedded within the host application, and wherein the host application is a document application and the secondary application is a spreadsheet application.

### Claim 20 (depends on 17)

The system of claim 17 wherein the action pertains to adding a comment to the document, and 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.

### Claim 21 (depends on 17)

The system of claim 17 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.

### Claim 22 (depends on 17)

The system of claim 17 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.
