Skip to content

Commit fcfa9a4

Browse files
Chart: prevent pointer out if within point circle (T1289498) (DevExpress#29944)
1 parent f14d968 commit fcfa9a4

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

packages/devextreme/js/viz/chart_components/tracker.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -526,8 +526,8 @@ extend(ChartTracker.prototype, baseTrackerPrototype, {
526526
return null;
527527
},
528528

529-
_isPointerOut: function(canvas) {
530-
return !canvas && this._stuckSeries;
529+
_isPointerOut: function(canvas, point) {
530+
return !canvas && this._stuckSeries && point?.series !== this._stuckSeries;
531531
},
532532

533533
_hideCrosshair: function() {

packages/devextreme/testing/tests/DevExpress.viz.charts/tracker.tests.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -568,6 +568,21 @@ QUnit.test('dxpointermove over point but out of a canvas (point on the border)',
568568
assert.equal(this.options.tooltip.stub('show').callCount, 1, 'tooltip showing');
569569
});
570570

571+
QUnit.test('dxclick on point but out of a canvas (point on the border) (T1289498)', function(assert) {
572+
this.tracker._pointerOut = sinon.stub();
573+
574+
// arrange
575+
this.series.getNeighborPoint.withArgs(97, 45).returns(this.point);
576+
577+
// act
578+
$(this.renderer.root.element).trigger(getEvent('dxpointermove', { pageX: 2, pageY: 1, target: this.pointElement.element, pointerType: 'mouse' }));
579+
$(this.renderer.root.element).trigger(getEvent('dxpointerdown', { pageX: 2, pageY: 1, target: this.pointElement.element }));
580+
$(this.renderer.root.element).trigger(getEvent('dxpointerup', { pageX: 2, pageY: 1, target: this.pointElement.element }));
581+
582+
// assert
583+
assert.strictEqual(this.tracker._pointerOut.getCalls().length, 0, 'point clicked');
584+
});
585+
571586
QUnit.test('mouseover on series - mouseout from series', function(assert) {
572587
// arrange
573588
this.series.getNeighborPoint.withArgs(99, 40).returns(this.point);

0 commit comments

Comments
 (0)