Skip to content

Commit e64ab63

Browse files
authored
fix: filter only one click after drag/pan is completed (#891)
1 parent 6e9a5e7 commit e64ab63

File tree

3 files changed

+13
-4
lines changed

3 files changed

+13
-4
lines changed

src/hammer.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,14 +108,14 @@ function startPan(chart, state, event) {
108108

109109
state.panScales = getEnabledScalesByPoint(state.options.pan, point, chart);
110110
state.delta = {x: 0, y: 0};
111-
clearTimeout(state.panEndTimeout);
112111
handlePan(chart, state, event);
113112
}
114113

115114
function endPan(chart, state) {
116115
state.delta = null;
117116
if (state.panning) {
118-
state.panEndTimeout = setTimeout(() => (state.panning = false), 500);
117+
state.panning = false;
118+
state.filterNextClick = true;
119119
call(state.options.pan.onPanComplete, [{chart}]);
120120
}
121121
}

src/handlers.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,8 @@ export function mouseUp(chart, event) {
180180

181181
zoomRect(chart, {x: rect.left, y: rect.top}, {x: rect.right, y: rect.bottom}, 'zoom');
182182

183-
setTimeout(() => (state.dragging = false), 500);
183+
state.dragging = false;
184+
state.filterNextClick = true;
184185
call(onZoomComplete, [{chart}]);
185186
}
186187

src/plugin.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,11 +87,19 @@ export default {
8787
chart.isZoomingOrPanning = () => isZoomingOrPanning(chart);
8888
},
8989

90-
beforeEvent(chart) {
90+
beforeEvent(chart, {event}) {
9191
if (isZoomingOrPanning(chart)) {
9292
// cancel any event handling while panning or dragging
9393
return false;
9494
}
95+
// cancel the next click or mouseup after drag or pan
96+
if (event.type === 'click' || event.type === 'mouseup') {
97+
const state = getState(chart);
98+
if (state.filterNextClick) {
99+
state.filterNextClick = false;
100+
return false;
101+
}
102+
}
95103
},
96104

97105
beforeUpdate: function(chart, args, options) {

0 commit comments

Comments
 (0)