GoView.MoveSelection called 3 times

Hi,
I have quite a few number of IconicNodes and Links in my application numbering well over 1000. Whenever the user selects all the GoObjects and tries to move them, it takes a lot of time to complete the operation. This is effecting the performance of my application.
I tried profiling the code. Most of the time was taken by MoveSelection (as expected). But this method is being called 3 times for each operation. ie when the user selects all the GoObjects and drops them on a location, the method gets hit thrice, from

  1. GoToolDragging.MakeDragSelection
    2)GoToolDragging.DoDragging
    3)GoToolDragging.DoCancelMouse.
    Can you please suggest as to how I can optimize this the move selection behavior (probably so that MoveSelection gets processed only once), since this will be a hindrance to the users of my application.
    In my app, GoViews.DragsRealtime property is set to false and I am using Go version 2.3.1.
    Thanks,
    Rafique

Well, please note that when GoView.DragsRealtime is false, although it isn’t actually moving the GoView.Selection around continuously as the mouse drags, it is moving an image of the selection around continuously.
So there will be a lot of calls to GoView.MoveSelection, but all of them but the first and the last are actually moving the GoToolDragging.DragSelection. That currently consists of two simple objects, one of which is a GoImage that displays a bitmap representation of the selection.
Furthermore, the first call to GoView.MoveSelection is just a no-op move needed to make sure the real Selection is at its original location when it is creating the DragSelection image to be dragged around. Notice how the offset for the first call is 0,0. So the computation for this call is small, since no objects are actually moved.
Of course, you do still want to do the last call to GoView.MoveSelection, in order to actually perform the move.
The only possibility for optimization, I believe, is in avoiding the creation of a Bitmap showing the whole selection and then dragging it around. This is particularly true when the Bitmap is large, although by default it is limited to 2000x2000 pixels.