@@ -379,12 +379,20 @@ function attachFxHandlers(sliceTop, gd, cd) {
379
379
380
380
if ( hoverinfo === 'all' ) hoverinfo = 'label+text+value+percent+name' ;
381
381
382
+ // If hoverinfo === 'none', we still want the *coordinates* of hover to be
383
+ // output, just not the hover to actually display
384
+ var rInscribed = pt . rInscribed || 0 ;
385
+ var hoverCenterX = cx + pt . pxmid [ 0 ] * ( 1 - rInscribed ) ;
386
+ var hoverCenterY = cy + pt . pxmid [ 1 ] * ( 1 - rInscribed ) ;
387
+ pt . x0 = hoverCenterX - rInscribed * cd0 . r ;
388
+ pt . x1 = hoverCenterX + rInscribed * cd0 . r ;
389
+ pt . y0 = hoverCenterY ;
390
+ pt . y1 = hoverCenterY ;
391
+
382
392
// in case we dragged over the pie from another subplot,
383
393
// or if hover is turned off
384
394
if ( trace2 . hovertemplate || ( hoverinfo !== 'none' && hoverinfo !== 'skip' && hoverinfo ) ) {
385
- var rInscribed = pt . rInscribed || 0 ;
386
- var hoverCenterX = cx + pt . pxmid [ 0 ] * ( 1 - rInscribed ) ;
387
- var hoverCenterY = cy + pt . pxmid [ 1 ] * ( 1 - rInscribed ) ;
395
+
388
396
var separators = fullLayout2 . separators ;
389
397
var text = [ ] ;
390
398
@@ -406,9 +414,9 @@ function attachFxHandlers(sliceTop, gd, cd) {
406
414
407
415
Fx . loneHover ( {
408
416
trace : trace ,
409
- x0 : hoverCenterX - rInscribed * cd0 . r ,
410
- x1 : hoverCenterX + rInscribed * cd0 . r ,
411
- y : hoverCenterY ,
417
+ x0 : pt . x0 ,
418
+ x1 : pt . x1 ,
419
+ y : pt . y0 ,
412
420
text : text . join ( '<br>' ) ,
413
421
name : ( trace2 . hovertemplate || hoverinfo . indexOf ( 'name' ) !== - 1 ) ? trace2 . name : undefined ,
414
422
idealAlign : pt . pxmid [ 0 ] < 0 ? 'left' : 'right' ,
0 commit comments