OnEnterLeave and Tool

We are thinking of replacing our OnHover, OnMouseOver, BackgroundHover
events with OnEnterLeave. It works for the most part accept that
the OnEnterLeave event does not fire when a Tool is active. How
can we overcome this limitation?

<span =“highlight”>

Actually, GoView.EnterLeave events are raised when either the GoToolManager or the GoToolDragging tools are active.
They do that by keeping track of the object that is “under” the current point. Here’s how GoToolManager.DoMouseOver does it:
public virtual void DoMouseOver(GoInputEventArgs evt) {
// keep track of the current document object, if any, and raise ObjectEnterLeave if it changes
GoObject before = this.CurrentObject;
GoObject after = this.View.PickObject(true, false, evt.DocPoint, false); // exclude view, but include unselectable objects
if (before != after) {
this.CurrentObject = after;
this.View.DoObjectEnterLeave(before, after, evt); // calls RaiseObjectEnterLeave and GoObject.OnEnterLeave
}
// only perform the normal mouse-over behavior for tooltips and
// default cursor when no other tool is running
this.View.DoMouseOver(evt);
}
What tool are you thinking that should be raising EnterLeave events? Or is it one of your own tools?

We have a PortMovingTool which is derived from GoTool.

Normally our ports (derived from GoGeneralNodePort) are not visible
until the user hover over the GoGeneralNode, this part works great by
overriding the GoGeneralNode’s OnEnterLeave event.

However, when we set the view’s tool to the PortMovingTool the
OnEnterLeave event of the GoGeneralNode is not fired thus the ports are
not visible for the user to move.