Context-Sensitive Undo Using Separate Stacks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing document editing systems lack the ability to perform context-sensitive undo functions, which can lead to unintended changes when reversing edits across different contexts within a document, such as text and images, as they typically revert the entire document to a previous state without distinguishing between different edit contexts.

Innovation Solution

Implementing a system that stores changes associated with specific contexts in separate stacks, allowing for context-sensitive undo operations that only reverse changes within the intended context without affecting other contexts, and enabling the combination of stacks for universal management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If a traditional undo command is used to reverse edits in a document, then the most recent change is reversed, but the entire document reverts to a previous state affecting all contexts including text, images, and tables

Engineering Contradiction:
Improveundo operationVSAvoidcontext-specific reversal precision
Core Design Contradiction:
Ease of operationVSManufacturing precision

Solution Approach 1:

The patent segments the document into different contexts (text, images, tables) and maintains separate undo stacks for each context. When a user performs an undo operation, the system identifies which context the user is working in and only reverses changes in that specific context, leaving other contexts unaffected. This segmentation allows precise, context-aware undo operations without affecting the entire document.

Inventive Principle:
Principle #1Segmentation

2Device complexity

If changes are stored in a single undo stack, then the undo mechanism is simple, but context-sensitive undo operations cannot be performed

Engineering Contradiction:
Improveundo stack structureVSAvoidcontext-sensitive undo capability
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The patent divides the single undo stack into multiple context-specific stacks (text stack, image stack, table stack). Each stack independently stores undo information for its specific context, enabling the system to perform context-sensitive undo operations while maintaining a relatively simple overall structure based on the standard stack data structure.

Inventive Principle:
Principle #1Segmentation

3Ease of operation

If the undo command reverses the most recent change across the entire document, then the undo function is straightforward, but unintended changes occur in other contexts

Engineering Contradiction:
Improveundo command executionVSAvoiddocument integrity
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent introduces context identification as an intermediary step between the undo command and the actual reversal operation. When a user initiates an undo command, the system first identifies which context (text, image, or table) the user is currently working in, then uses this context information as a mediator to direct the reversal operation only to the appropriate stack, preventing unintended changes in other contexts while maintaining straightforward undo operation.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9146914B1System and method for providing a context sensitive undo function
Publication Date: 2015.09.29 GOOGLE LLC
  • US9146914B1 patent drawing
  • US9146914B1 patent drawing
  • US9146914B1 patent drawing

AI summary

A context sensitive undo feature undoes a first change in a document without affecting other changes made by other contexts. A first change is applied within a document. A context of the first change is determined. First data related to the first change is stored in a first stack in response to determining that the first change is associated with a first context. A second change is applied within the document, the second change occurring after the first change. A context of the second change is determined. Second data relating to the second change, associated with a second context, is stored in a second stack. An instruction to undo the first change is received, and an undo function to undo the first change based on the first data is performed without affecting the second change in response to determining that the undo instruction is associated with the first context.