From cfe304dc73f86019cf9cdc01b7cc5e3c59c155f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikl=C3=B3s=20Tusz?= Date: Mon, 14 Dec 2015 12:35:50 -0500 Subject: [PATCH 1/3] Added click event on pie charts. --- src/plots/cartesian/graph_interact.js | 2 +- src/traces/pie/index.js | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/plots/cartesian/graph_interact.js b/src/plots/cartesian/graph_interact.js index 9994260899c..8c9c7f9a3b9 100644 --- a/src/plots/cartesian/graph_interact.js +++ b/src/plots/cartesian/graph_interact.js @@ -1276,7 +1276,7 @@ fx.click = function(gd,evt){ if(gd._hoverdata && evt && evt.target) { gd.emit('plotly_click', {points: gd._hoverdata}); // why do we get a double event without this??? - evt.stopImmediatePropagation(); + if(evt.stopImmediatePropagation) evt.stopImmediatePropagation(); } }; diff --git a/src/traces/pie/index.js b/src/traces/pie/index.js index 9958c3055d5..807715a15ed 100644 --- a/src/traces/pie/index.js +++ b/src/traces/pie/index.js @@ -373,6 +373,12 @@ pie.plot = function(gd, cdpie) { } } + function handleClick (evt) { + gd._hoverdata = pt; + gd._hoverdata.trace = slices[0][0].__data__.trace; + Plotly.Fx.click(gd, { target: true }); + } + slicePath.enter().append('path') .classed('surface', true) .style({'pointer-events': 'all'}); @@ -381,7 +387,8 @@ pie.plot = function(gd, cdpie) { sliceTop .on('mouseover', handleMouseOver) - .on('mouseout', handleMouseOut); + .on('mouseout', handleMouseOut) + .on('click', handleClick); if(trace.pull) { var pull = +(Array.isArray(trace.pull) ? trace.pull[pt.i] : trace.pull) || 0; From 21aabf29e6fcaab901ebdc341f3fda03e747aff7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikl=C3=B3s=20Tusz?= Date: Mon, 14 Dec 2015 13:12:57 -0500 Subject: [PATCH 2/3] Change to reference cd.trace --- src/traces/pie/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/traces/pie/index.js b/src/traces/pie/index.js index 807715a15ed..4ba42d0dcd9 100644 --- a/src/traces/pie/index.js +++ b/src/traces/pie/index.js @@ -375,7 +375,7 @@ pie.plot = function(gd, cdpie) { function handleClick (evt) { gd._hoverdata = pt; - gd._hoverdata.trace = slices[0][0].__data__.trace; + gd._hoverdata.trace = cd.trace; Plotly.Fx.click(gd, { target: true }); } From 0800e15632e5ab0cb472715b3ccb86300dffb686 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikl=C3=B3s=20Tusz?= Date: Tue, 15 Dec 2015 17:43:51 -0500 Subject: [PATCH 3/3] Pie slice returned in an array on click --- src/traces/pie/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/traces/pie/index.js b/src/traces/pie/index.js index 4ba42d0dcd9..25f1a69601f 100644 --- a/src/traces/pie/index.js +++ b/src/traces/pie/index.js @@ -374,7 +374,7 @@ pie.plot = function(gd, cdpie) { } function handleClick (evt) { - gd._hoverdata = pt; + gd._hoverdata = [pt]; gd._hoverdata.trace = cd.trace; Plotly.Fx.click(gd, { target: true }); }