Before we get too bogged down by dealing with Angular zones, I’d like to understand exactly what behavior it is that you want to avoid.
If you don’t want cursors or tooltips to show when the user moves the mouse without any particular tool running, you can override the methods ToolManager.standardMouseOver and ToolManager.standardWaitAfter to be no-ops. Doing so will still allow tools such as the DraggingTool or LinkingTool or PanningTool to run normally.
If you don’t want any ToolManager.mouseMoveTools tool to run, you could override ToolManager.doMouseMove to be a no-op. That would still allow tools such as the ClickSelectingTool, the ResizingTool, and the TextEditingTool to run.
But I’m not sure that such kinds of disabling mouse-move events is going to help. I assume Angular’s dirty-checking will happen with every mouse-move event, not just for some cases, so overriding the behavior to be no-ops won’t prevent that dirty-checking. I don’t think there is a reasonable way to avoid the internal call to addEventListener(…, 'mousemove', …)
.