Context click to copy multiple GoObjects

I have an application that uses GoIconicNodes connected by GoLabeledLinks. I have the context menu set up to include clipboard operations (cut/copy/paste). I have (finally) mostly gotten copy/paste working for multiple connected nodes when I use the keyboard (Ctrl-C / Ctrl-V) or when I use the main menu.
The problem is when I try to copy multiple connected nodes using the context menu. I first select a group of nodes by dragging a box around the group. Then I right click one of the nodes in the selection. The problem is that this right click deselects the group and selects the single node that was right clicked, so my Copy/Paste only copies the single node, when I wanted to copy the whole group. This same problem exists in the FlowCharter sample app.
What I would like is if the node that is right-clicked is already part of the current Selection (before the click), not to select that node singly. If the node isn’t part of the current Selection, I would like it to be selected as it is now. Is there a way to accomplish this?
Thanks in advance,
Darren Jones

From the FAQ:
Bringing up a popup menu on a context click causes other selected objects to be deselected—how can I have the popup menu apply to all selected objects?

The default behavior for GoToolContext when the user does a context click is to call GoTool.DoSelect, which follows the normal selection rules for a click, including observing the Control and Shift modifiers. If you want to have an unmodified context click on a selected object leave the selection unchanged, set the GoToolContext.SingleSelection property to false:

GoToolContext tool = aView.FindMouseTool(typeof(GoToolContext)) as GoToolContext;<?:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

tool.SingleSelection = false;

That’s what I needed. Sorry for the repeat question of something already in the FAQ.
Thanks,
-Darren

Hi,
I’m trying to do this in version 1.0; unfortunately (unless I’m being highly stupid) the GoToolContext class doesn’t seem to support the SingleSelection property in this version.
Is there some way I can fake it?
Thanks,
Richard

Version 1.0, eh? You know that version 2.2.2 has been out for a while? Well, I haven’t tried this, but you can:
public override void DoSelect(GoInputEventArgs evt) {
if (this.SingleSelection || evt.Control || evt.Shift) {
base.DoSelect(evt);
} else {
this.CurrentObject = this.View.PickObject(true, false, evt.DocPoint, true);
if (this.CurrentObject == null)
this.Selection.Clear();
else if (!this.Selection.Contains(this.CurrentObject)) {
this.Selection.Select(this.CurrentObject);
} // if it is selected, don’t do anything
}
}
public virtual bool SingleSelection {
get { return mySingleSelection; }
set { mySingleSelection = value; }
}
private bool mySingleSelection = true;

Thanks Walter, that seems to work fine.
BTW My company has now ordered v2.2.2, but this will do until we can get it installed.
Thanks again,
Richard.