From b057a82ed33d458cf54f41498c161a1a087b447b Mon Sep 17 00:00:00 2001 From: Joe Dolson Date: Tue, 9 Sep 2025 15:05:57 -0500 Subject: [PATCH 1/6] Try esc escaping --- src/wp-includes/blocks/categories.php | 7 +++++-- src/wp-includes/widgets/class-wp-widget-categories.php | 9 ++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/wp-includes/blocks/categories.php b/src/wp-includes/blocks/categories.php index 60a29713b4660..d3677e609d980 100644 --- a/src/wp-includes/blocks/categories.php +++ b/src/wp-includes/blocks/categories.php @@ -103,12 +103,15 @@ function build_dropdown_script_block_core_categories( $dropdown_id ) { (function() { - var dropdown = document.getElementById( "" ); - function onCatChange() { + var dropdown = document.getElementById( '' ); + function onCatChange(e) { + if ( 'keyup' === e.type && 'Escape' !== e.key ) { + return; + } if ( dropdown.options[ dropdown.selectedIndex ].value > 0 ) { dropdown.parentNode.submit(); } } - dropdown.onchange = onCatChange; + dropdown.addEventListener( 'change', onCatChange(e) ); })(); From d77be4a24393075b787410f5e339ee40545855be Mon Sep 17 00:00:00 2001 From: Joe Dolson Date: Tue, 9 Sep 2025 16:11:59 -0500 Subject: [PATCH 2/6] Prevent change event if change happens on esc --- .../widgets/class-wp-widget-categories.php | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/wp-includes/widgets/class-wp-widget-categories.php b/src/wp-includes/widgets/class-wp-widget-categories.php index 08a0625776459..e6252831ad374 100644 --- a/src/wp-includes/widgets/class-wp-widget-categories.php +++ b/src/wp-includes/widgets/class-wp-widget-categories.php @@ -97,16 +97,29 @@ public function widget( $args, $instance ) { From 1accde8a9d96ad622369d5a5491c4fdf6215cbaa Mon Sep 17 00:00:00 2001 From: Joe Dolson Date: Tue, 9 Sep 2025 16:15:40 -0500 Subject: [PATCH 3/6] Extend to archives widget; fix indenting. --- .../widgets/class-wp-widget-archives.php | 26 +++++++++--- .../widgets/class-wp-widget-categories.php | 40 +++++++++---------- 2 files changed, 41 insertions(+), 25 deletions(-) diff --git a/src/wp-includes/widgets/class-wp-widget-archives.php b/src/wp-includes/widgets/class-wp-widget-archives.php index 7457244833a45..7cb36af5d383f 100644 --- a/src/wp-includes/widgets/class-wp-widget-archives.php +++ b/src/wp-includes/widgets/class-wp-widget-archives.php @@ -110,12 +110,28 @@ public function widget( $args, $instance ) { diff --git a/src/wp-includes/widgets/class-wp-widget-categories.php b/src/wp-includes/widgets/class-wp-widget-categories.php index e6252831ad374..35b9f9c9cb887 100644 --- a/src/wp-includes/widgets/class-wp-widget-categories.php +++ b/src/wp-includes/widgets/class-wp-widget-categories.php @@ -99,27 +99,27 @@ public function widget( $args, $instance ) { (function() { var dropdown = document.getElementById( '' ), lastkey; function onCatChange(e) { - setTimeout(function() { - lastKey = dropdown.getAttribute( 'data-lastkey' ); - if ( 'change' === e.type && 'escape' === lastKey ) { - return; - } - if ( dropdown.options[ dropdown.selectedIndex ].value > 0 ) { - dropdown.parentNode.submit(); - } - }, 250 ); + setTimeout(function() { + lastKey = dropdown.getAttribute( 'data-lastkey' ); + if ( 'change' === e.type && 'escape' === lastKey ) { + return; + } + if ( dropdown.options[ dropdown.selectedIndex ].value > 0 ) { + dropdown.parentNode.submit(); + } + }, 250 ); } - dropdown.addEventListener( 'keyup', function(e) { - if ( 'Escape' === e.key ) { - dropdown.setAttribute( 'data-lastkey', 'escape' ); - } else { - dropdown.removeAttribute( 'data-lastkey' ); - } - }); - dropdown.addEventListener( 'click', function() { - dropdown.removeAttribute( 'data-lastkey' ); - }); - dropdown.onchange = onCatChange; + dropdown.addEventListener( 'keyup', function(e) { + if ( 'Escape' === e.key ) { + dropdown.setAttribute( 'data-lastkey', 'escape' ); + } else { + dropdown.removeAttribute( 'data-lastkey' ); + } + }); + dropdown.addEventListener( 'click', function() { + dropdown.removeAttribute( 'data-lastkey' ); + }); + dropdown.onchange = onCatChange; })(); From 9062d4e81523d088fdde5a7ab64bc3a6ed5b4152 Mon Sep 17 00:00:00 2001 From: Joe Dolson Date: Mon, 15 Sep 2025 17:21:43 -0500 Subject: [PATCH 4/6] Update src/wp-includes/widgets/class-wp-widget-archives.php Co-authored-by: Mukesh Panchal --- src/wp-includes/widgets/class-wp-widget-archives.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/wp-includes/widgets/class-wp-widget-archives.php b/src/wp-includes/widgets/class-wp-widget-archives.php index 7cb36af5d383f..e149821674926 100644 --- a/src/wp-includes/widgets/class-wp-widget-archives.php +++ b/src/wp-includes/widgets/class-wp-widget-archives.php @@ -129,7 +129,7 @@ function onSelectChange(e) { dropdown.removeAttribute( 'data-lastkey' ); } }); - dropdown.addEventListener( 'click', function() { + dropdown.addEventListener( 'click', function() { dropdown.removeAttribute( 'data-lastkey' ); }); dropdown.onchange = onSelectChange; From 1ff250fe71563798c0be70deb6bbc3b7a6ff32ed Mon Sep 17 00:00:00 2001 From: Joe Dolson Date: Mon, 15 Sep 2025 17:21:50 -0500 Subject: [PATCH 5/6] Update src/wp-includes/widgets/class-wp-widget-archives.php Co-authored-by: Mukesh Panchal --- src/wp-includes/widgets/class-wp-widget-archives.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/wp-includes/widgets/class-wp-widget-archives.php b/src/wp-includes/widgets/class-wp-widget-archives.php index e149821674926..28a4399d4a716 100644 --- a/src/wp-includes/widgets/class-wp-widget-archives.php +++ b/src/wp-includes/widgets/class-wp-widget-archives.php @@ -131,7 +131,7 @@ function onSelectChange(e) { }); dropdown.addEventListener( 'click', function() { dropdown.removeAttribute( 'data-lastkey' ); - }); + }); dropdown.onchange = onSelectChange; })(); From edaebf6c6682eddc2b7bc69aea5878206eeee118 Mon Sep 17 00:00:00 2001 From: Joe Dolson Date: Fri, 19 Sep 2025 15:59:45 -0500 Subject: [PATCH 6/6] This wasn't supposed to stay in here. --- src/wp-includes/blocks/categories.php | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/wp-includes/blocks/categories.php b/src/wp-includes/blocks/categories.php index d3677e609d980..60a29713b4660 100644 --- a/src/wp-includes/blocks/categories.php +++ b/src/wp-includes/blocks/categories.php @@ -103,15 +103,12 @@ function build_dropdown_script_block_core_categories( $dropdown_id ) {