I have some custom nodes and they show resize handles when selected. The center of each handle is aligned with a node corner, it means that 75% of the handle is outside the node. When I try to resize the node and grab the part of the handle which overlays the node, everything works as expected, but when I grab any other part of the handle (lying outside the node) the whole diagram moves. This happens because I’m using my custom GoToolPanning which detects if the left mouse button was pressed on the background and then moves the whole diagram together with the mouse cursor (Google Maps style panning).
This is the detection method:
public override bool CanStart()
{
if (LastInput.Buttons == MouseButtons.Left)
{
GoObject obj = View.Document.PickObject(LastInput.DocPoint, true);
return obj == null;
}
return false;
}
How can I recognize that the cursor is currently above a resize handle? PickObject returns only “real” object, but not handles.