From 40144d337a7560e2a3823e0262a739584b81f7fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0brahim=20Uysal?= Date: Thu, 7 Nov 2024 23:37:07 +0300 Subject: [PATCH 1/2] [GLFW] Fix the bug that prevents any text on the site from being deleted --- src/library_glfw.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/library_glfw.js b/src/library_glfw.js index a8815d838af9d..0e97cee48209c 100644 --- a/src/library_glfw.js +++ b/src/library_glfw.js @@ -419,7 +419,10 @@ var LibraryGLFW = { // This logic comes directly from the sdl implementation. We cannot // call preventDefault on all keydown events otherwise onKeyPress will // not get called - if (event.keyCode === 8 /* backspace */ || event.keyCode === 9 /* tab */) { + // Prevent default backspace and tab behavior when the target + // is not an input or textarea. Otherwise, no text in the site can be deleted. + if (event.target.tagName !== "INPUT" && event.target.tagName !== "TEXTAREA" && + (event.keyCode === 8 /* backspace */ || event.keyCode === 9 /* tab */)) { event.preventDefault(); } }, From e7e8a0cd7c1734267aa85f8e5e057e68a47c0ca3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0brahim=20Uysal?= Date: Thu, 7 Nov 2024 23:37:15 +0300 Subject: [PATCH 2/2] [SDL] Fix the bug that prevents any text on the site from being deleted --- src/library_glfw.js | 2 +- src/library_sdl.js | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/library_glfw.js b/src/library_glfw.js index 0e97cee48209c..052a561468283 100644 --- a/src/library_glfw.js +++ b/src/library_glfw.js @@ -422,7 +422,7 @@ var LibraryGLFW = { // Prevent default backspace and tab behavior when the target // is not an input or textarea. Otherwise, no text in the site can be deleted. if (event.target.tagName !== "INPUT" && event.target.tagName !== "TEXTAREA" && - (event.keyCode === 8 /* backspace */ || event.keyCode === 9 /* tab */)) { + (event.key == 'Backspace' || event.key == 'Tab')) { event.preventDefault(); } }, diff --git a/src/library_sdl.js b/src/library_sdl.js index 14bdd0f269133..80c053de74524 100644 --- a/src/library_sdl.js +++ b/src/library_sdl.js @@ -689,8 +689,13 @@ var LibrarySDL = { // won't fire. However, it's fine (and in some cases necessary) to // preventDefault for keys that don't generate a character. Otherwise, // preventDefault is the right thing to do in general. - if (event.type !== 'keydown' || (!SDL.unicode && !SDL.textInput) || (event.keyCode === 8 /* backspace */ || event.keyCode === 9 /* tab */)) { - event.preventDefault(); + // Prevent default backspace and tab behavior when the target + // is not an input or textarea. Otherwise, no text in the site can be deleted. + if (event.type !== 'keydown' || + (!SDL.unicode && !SDL.textInput) || + ((event.key == 'Backspace' || event.key == 'Tab') && + event.target.tagName !== "INPUT" && event.target.tagName !== "TEXTAREA")) { + event.preventDefault(); } if (event.type == 'mousedown') {