(g, gd, legendId)
| 631 | } |
| 632 | |
| 633 | function setupTraceToggle(g, gd, legendId) { |
| 634 | var doubleClickDelay = gd._context.doubleClickDelay; |
| 635 | var newMouseDownTime; |
| 636 | var numClicks = 1; |
| 637 | |
| 638 | var traceToggle = Lib.ensureSingle(g, 'rect', legendId + 'toggle', function(s) { |
| 639 | if(!gd._context.staticPlot) { |
| 640 | s.style('cursor', 'pointer').attr('pointer-events', 'all'); |
| 641 | } |
| 642 | s.call(Color.fill, 'rgba(0,0,0,0)'); |
| 643 | }); |
| 644 | |
| 645 | if(gd._context.staticPlot) return; |
| 646 | |
| 647 | traceToggle.on('mousedown', function() { |
| 648 | newMouseDownTime = (new Date()).getTime(); |
| 649 | if(newMouseDownTime - gd._legendMouseDownTime < doubleClickDelay) { |
| 650 | // in a click train |
| 651 | numClicks += 1; |
| 652 | } else { |
| 653 | // new click train |
| 654 | numClicks = 1; |
| 655 | gd._legendMouseDownTime = newMouseDownTime; |
| 656 | } |
| 657 | }); |
| 658 | traceToggle.on('mouseup', function() { |
| 659 | if(gd._dragged || gd._editing) return; |
| 660 | var legend = gd._fullLayout[legendId]; |
| 661 | |
| 662 | if((new Date()).getTime() - gd._legendMouseDownTime > doubleClickDelay) { |
| 663 | numClicks = Math.max(numClicks - 1, 1); |
| 664 | } |
| 665 | |
| 666 | clickOrDoubleClick(gd, legend, g, numClicks, d3.event); |
| 667 | }); |
| 668 | } |
| 669 | |
| 670 | function setupTitleToggle(scrollBox, gd, legendObj, legendId) { |
| 671 | // For now, skip title click for legends containing pie-like traces |
nothing calls this directly
no test coverage detected
searching dependent graphs…