EditCopy in UndoManager

How can I keep the EditCopy (Ctrl+C) from appearing in the Undo list? I tried setting SkipsUndoManager to true in both EditCopy and CopyToClipboard in the GoView. Where should I do this? I suspect that I should be doing this in an overload of one of the document methods, but I can’t figure out which one.

Is the problem that after the user makes some change and then types Ctrl-C, a Ctrl-Z doesn't seem to do anything?
The reason there's a compound edit in the GoUndoManager is to show that the transaction (i.e. the call to GoView.EditCopy) was successful.
That's even though that compound edit will normally be empty, because there isn't usually any document change that happens on a EditCopy.
However, if for some unusual reason there is some kind of document change that happens, that compound edit in the undo manager will be there anyway to hold a record of those changes.
But if you don't want there to be a transaction when there's a call to GoView.EditCopy, you could override that method. Here's the definition of EditCopy without any transaction-related code:
public override void EditCopy() {
if (!CanCopyObjects()) return;
try {
CopyToClipboard(this.Selection);
RaiseClipboardCopied();
} catch (Exception ex) {
GoObject.Trace("EditCopy: " + ex.ToString());
throw;
}
}

Perfect. Thanks!

I understand it being in the UndoManager by default, it makes sense for many reasons.
There are two problems this was causing for me. Forst, we enable/disable Undo/Redo in a context menu and toolbar based on whether there is anything to undo/redo. Secondly, we set a flag when the document changes so that we can prompts users to Save if they close the view. So, if a user opened a view to copy something, clicked undo, then closed the view, our app would prompt them to save - even though they have not changed anything. So, the cleanest solution is to keep the Copy from showing up in the Undo list.
Thanks again.

I suggest you use the GoDocument.IsModified property to tell whether or not the document has been modified.

Take a look at how ProtoApp uses the property, how it enables/disables relevant controls, and how it updates the title with a "*" when the document is modified.
You'll note that the code explicitly sets GoDocument.IsModified to false after initialization and when storing or loading the document.
GoDocument.OnChanged sets IsModified to true, when appropriate.