(_payload: ChartGPUEventPayload)
| 2499 | }; |
| 2500 | |
| 2501 | const onMouseLeave = (_payload: ChartGPUEventPayload): void => { |
| 2502 | // Only clear interaction overlays for real pointer interaction. |
| 2503 | // If we're being driven by a sync-x, leaving the canvas shouldn't hide the overlays. |
| 2504 | if (pointerState.source !== 'mouse') return; |
| 2505 | |
| 2506 | pointerState = { ...pointerState, isInGrid: false, hasPointer: false }; |
| 2507 | crosshairRenderer.setVisible(false); |
| 2508 | hideTooltip(); |
| 2509 | emitCrosshairCallback(null); |
| 2510 | emitHoverCallback(null); |
| 2511 | setInteractionXInternal(null, 'mouse'); |
| 2512 | requestRender(); |
| 2513 | }; |
| 2514 | |
| 2515 | // Register event listeners only if event manager is available (HTMLCanvasElement). |
| 2516 | if (eventManager) { |
nothing calls this directly
no test coverage detected