﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	blockedby	blocking	notify_on_close	platform	project
2097	Undo aggregate and block context managers	Conrad Huang	Greg Couch	"Undo manager needs to provide ways of aggregating undo for multiple commands into a single entry (use case: nucleotide style buttons) or to block undo actions (use case: ""tile"" command not wanting ""move"" undo actions).  Usage may be something like:

{{{
# Aggregate undo action is registered after ""with""
with session.undo.aggregate(""cmd_title""):
   run(""command 1; command 2; command 3"")
   # Each command needs to be undone, in order

# Must manually register custom undo action
with session.undo.block(""tile""):
   run(""move x 10 #1; move x 20 #2"")
   # A bunch of commands whose net result is captured by view
   # and undo only uses the saved views
session.undo.register(myCustomUndoAction)
}}}

Aggregate undo actions can be ""redo""ne if all sub-actions can be redone."	enhancement	assigned	major	1.0	Core				gregc@…				all	ChimeraX
