From ef237310f5107c4eaf74261449db4fa6ff69eb37 Mon Sep 17 00:00:00 2001 From: sidhansu10 Date: Sat, 27 Dec 2025 19:58:06 +0530 Subject: [PATCH 1/3] fix(dom/events): ensure mouseReleased fires after DOM interactions --- src/dom/dom.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/dom/dom.js b/src/dom/dom.js index a5e1c54a5c..94a5e2d68a 100644 --- a/src/dom/dom.js +++ b/src/dom/dom.js @@ -481,9 +481,15 @@ p5.Element.prototype.input = function (fxn) { function addElement(elt, pInst, media) { const node = pInst._userNode ? pInst._userNode : document.body; node.appendChild(elt); + elt.addEventListener('mouseup', e => { + if (pInst && pInst.mouseIsPressed && typeof pInst._onmouseup === 'function') { + pInst._onmouseup(e); + } + }); const c = media ? new p5.MediaElement(elt, pInst) : new p5.Element(elt, pInst); + pInst._elements.push(c); return c; } From 5e5618d337587bcffd69933c6c7c40a139d6298a Mon Sep 17 00:00:00 2001 From: Perminder Singh <127239756+perminder-17@users.noreply.github.com> Date: Fri, 12 Jun 2026 17:03:54 +0530 Subject: [PATCH 2/3] Remove mouseup event listener in addElement Removed mouseup event listener from addElement function. --- src/dom/dom.js | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/dom/dom.js b/src/dom/dom.js index 94a5e2d68a..8dd2f5a8c2 100644 --- a/src/dom/dom.js +++ b/src/dom/dom.js @@ -481,11 +481,6 @@ p5.Element.prototype.input = function (fxn) { function addElement(elt, pInst, media) { const node = pInst._userNode ? pInst._userNode : document.body; node.appendChild(elt); - elt.addEventListener('mouseup', e => { - if (pInst && pInst.mouseIsPressed && typeof pInst._onmouseup === 'function') { - pInst._onmouseup(e); - } - }); const c = media ? new p5.MediaElement(elt, pInst) : new p5.Element(elt, pInst); From 7c749750fe2790e13115aef2b9e5d6f1d307bacd Mon Sep 17 00:00:00 2001 From: Perminder Singh <127239756+perminder-17@users.noreply.github.com> Date: Fri, 12 Jun 2026 17:09:50 +0530 Subject: [PATCH 3/3] Fix mouse up event handling on mouse release --- src/events/mouse.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/events/mouse.js b/src/events/mouse.js index 7d83626962..35acdc29d0 100644 --- a/src/events/mouse.js +++ b/src/events/mouse.js @@ -1073,6 +1073,11 @@ p5.prototype._onmousemove = function(e) { const context = this._isGlobal ? window : this; let executeDefault; this._updateNextMouseCoords(e); + + if (this.mouseIsPressed && e.buttons === 0) { + this._onmouseup(e); + } + if (!this.mouseIsPressed) { if (typeof context.mouseMoved === 'function') { executeDefault = context.mouseMoved(e);