@@ -379,12 +379,20 @@ function attachFxHandlers(sliceTop, gd, cd) {
379379
380380 if ( hoverinfo === 'all' ) hoverinfo = 'label+text+value+percent+name' ;
381381
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+
382392 // in case we dragged over the pie from another subplot,
383393 // or if hover is turned off
384394 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+
388396 var separators = fullLayout2 . separators ;
389397 var text = [ ] ;
390398
@@ -406,9 +414,9 @@ function attachFxHandlers(sliceTop, gd, cd) {
406414
407415 Fx . loneHover ( {
408416 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 ,
412420 text : text . join ( '<br>' ) ,
413421 name : ( trace2 . hovertemplate || hoverinfo . indexOf ( 'name' ) !== - 1 ) ? trace2 . name : undefined ,
414422 idealAlign : pt . pxmid [ 0 ] < 0 ? 'left' : 'right' ,
0 commit comments