diff --git a/src/events/pointer.js b/src/events/pointer.js index 0cfaafd8ae..4a8226c43a 100644 --- a/src/events/pointer.js +++ b/src/events/pointer.js @@ -24,6 +24,10 @@ function pointer(p5, fn, lifecycles){ signal: this._removeSignal }); } + + window.addEventListener('blur', () => { + this.mouseIsPressed = false; + }, { signal: this._removeSignal }); }; /** diff --git a/test/unit/events/mouse.js b/test/unit/events/mouse.js index baa956925c..144a475bc1 100644 --- a/test/unit/events/mouse.js +++ b/test/unit/events/mouse.js @@ -251,6 +251,13 @@ suite.todo('Mouse Events', function() { window.dispatchEvent(new MouseEvent('mousedown')); assert.strictEqual(myp5.mouseIsPressed, true); }); + + test('mouseIsPressed should reset to false on blur', function() { + window.dispatchEvent(new PointerEvent('pointerdown')); + assert.strictEqual(myp5.mouseIsPressed, true); + window.dispatchEvent(new Event('blur')); + assert.strictEqual(myp5.mouseIsPressed, false); + }); }); suite('mouseMoved', function() {