Skip to content

Commit c259002

Browse files
committed
Click Anywhere v1
1 parent 373d4ff commit c259002

File tree

2 files changed

+22
-7
lines changed

2 files changed

+22
-7
lines changed

src/components/fx/click.js

+21-6
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,29 @@ module.exports = function click(gd, evt, subplot) {
2222
hover(gd, evt, subplot, true);
2323
}
2424

25-
function emitClick() { gd.emit('plotly_click', {points: gd._hoverdata, event: evt}); }
25+
function emitClick(data) { gd.emit('plotly_click', {points: data, event: evt}); }
2626

27-
if(gd._hoverdata && evt && evt.target) {
28-
if(annotationsDone && annotationsDone.then) {
29-
annotationsDone.then(emitClick);
30-
} else emitClick();
27+
// TODO(j): remove gd._hoverdata
28+
var clickmode = gd._fullLayout.clickmode;
29+
var data;
30+
if(evt && evt.target) {
31+
if(gd._hoverdata) {
32+
data = gd._hoverdata;
33+
} else if(clickmode.indexOf('anywhere') > -1) {
34+
var xaxis = gd._fullLayout.xaxis;
35+
var yaxis = gd._fullLayout.yaxis;
36+
var bb = evt.target.getBoundingClientRect();
37+
var x = xaxis.p2d(evt.clientX - bb.left);
38+
var y = yaxis.p2d(evt.clientY - bb.top);
39+
data = [{x: x, y: y}];
40+
}
41+
if(data) {
42+
if(annotationsDone && annotationsDone.then) {
43+
annotationsDone.then(function() { emitClick(data); });
44+
} else emitClick(data);
45+
}
3146

3247
// why do we get a double event without this???
3348
if(evt.stopImmediatePropagation) evt.stopImmediatePropagation();
3449
}
35-
};
50+
};

src/components/fx/layout_attributes.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ module.exports = {
2121
clickmode: {
2222
valType: 'flaglist',
2323
role: 'info',
24-
flags: ['event', 'select'],
24+
flags: ['event', 'select', 'anywhere'],
2525
dflt: 'event',
2626
editType: 'plot',
2727
extras: ['none'],

0 commit comments

Comments
 (0)