I think we need to handle these cases here:

WindowSelection: the selection box should be hidden by a call to RequestSelectionBoxUpdate (we may consider merging the functionality of canceling the selection box into a separate private method "CancelWindowSelection" so it can be reused in "HandleMouseRelease").

NodeReposition: we need to issue a "DynCmd.DragSelectionCommand" to conclude the on-going drag operation. Again, this should be folded into a private method "CancelNodeReposition", and be reused in "HandleMouseRelease").

DragSetup: like above, we need "CancelDragSetup".

Do you see how we have the prefix of "Cancel" for all these state cancellation methods? So let's make it consistent (hopefully within a "pragma region", right above "Private Class Helper Method" region.