From 963872e42785188b3d9bd97a30b2ed01a47d7d2b Mon Sep 17 00:00:00 2001 From: zacharybergin Date: Thu, 3 Sep 2026 22:06:14 -0500 Subject: [PATCH] fix: split space-separated event names in input listeners addEventListener matches the type argument as a single literal string, so "copy paste" and "select selectstart" registered listeners for events that can never fire. Both are jQuery .on() syntax, which accepts space-separated lists; the DOM API does not. Register each event separately so copy/paste prevention on the words input works as intended. --- frontend/src/ts/input/listeners/misc.ts | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/frontend/src/ts/input/listeners/misc.ts b/frontend/src/ts/input/listeners/misc.ts index 8c49762e0c44..cfc8247e3461 100644 --- a/frontend/src/ts/input/listeners/misc.ts +++ b/frontend/src/ts/input/listeners/misc.ts @@ -9,12 +9,20 @@ inputEl.addEventListener("focus", () => { moveInputElementCaretToTheEnd(); }); -inputEl.addEventListener("copy paste", (event) => { +inputEl.addEventListener("copy", (event) => { event.preventDefault(); }); -//this might not do anything -inputEl.addEventListener("select selectstart", (event) => { +inputEl.addEventListener("paste", (event) => { + event.preventDefault(); +}); + +//select is not cancelable, so this might not do anything +inputEl.addEventListener("select", (event) => { + event.preventDefault(); +}); + +inputEl.addEventListener("selectstart", (event) => { event.preventDefault(); });