waterWang opened a new pull request, #21724:
URL: https://github.com/apache/echarts/pull/21724

   ### Problem
   
   When the toolbox dataZoom button is active and the user clicks on the chart 
to zoom, the cursor changes to a default/gesture state after releasing the 
mouse. The expected behavior is that the cursor should remain as the zoom 
crosshair cursor while the dataZoom tool is active.
   
   ### Root Cause
   
   The `RoamController._mousemoveHandler` properly checks 
`interactionMutex.isTaken(zr, 'globalPan')` and defers to the BrushController 
when the dataZoom brush is active. However, `_mousedownHandler` and 
`_mouseupHandler` were not checking this mutex:
   
   - `_mousedownHandler` would set `this._dragging = true` even when the 
dataZoom brush owns the interaction
   - `_mouseupHandler` would reset the cursor to `'default'` (via 
`_decideCursorStyle`) on mouse release, overriding the zoom crosshair cursor
   
   ### Fix
   
   Add the same `interactionMutex.isTaken(zr, 'globalPan')` guard to 
`_mousedownHandler` and `_mouseupHandler`, consistent with the existing check 
in `_mousemoveHandler`. This prevents the RoamController from interfering with 
the cursor when the BrushController (dataZoom) holds the globalPan mutex.
   
   ### How to Reproduce
   
   1. Open the line-smooth chart example with toolbox dataZoom enabled
   2. Click the zoom button in the toolbox area
   3. Hover over the chart — cursor should be crosshair (zoom cursor) ✓
   4. Click and drag on the chart to select a zoom region
   5. Release the mouse — cursor should remain as crosshair, NOT change to 
default/gesture
   
   Closes #21723


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to