From 16d98589cff505fc99daba0890df6ba60e40d3d4 Mon Sep 17 00:00:00 2001 From: Raj Vishwakarma Date: Fri, 24 Oct 2025 08:50:26 +0000 Subject: [PATCH] emoji-picker: Improve keyboard navigation from filter search bar. Fixes navigation from filter search bar to emoji grid and removes custom Tab/Shift+Tab handling to use default browser behavior. Fixes #36324. --- web/src/emoji_picker.ts | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/web/src/emoji_picker.ts b/web/src/emoji_picker.ts index 05c8b058e4..43dffd516b 100644 --- a/web/src/emoji_picker.ts +++ b/web/src/emoji_picker.ts @@ -509,19 +509,12 @@ export function navigate(event_name: string, e?: JQuery.KeyDownEvent): boolean { // Move down into emoji map. const filter_text = $("input#emoji-popover-filter").val()!; const is_cursor_at_end = $("#emoji-popover-filter").caret() === filter_text.length; - if (event_name === "down_arrow" || (is_cursor_at_end && event_name === "right_arrow")) { - assert($selected_emoji !== undefined); - $selected_emoji.trigger("focus"); - if (current_section === 0 && current_index < 6) { - scroll_util.get_scroll_element($emoji_map).scrollTop(0); - } - update_emoji_showcase($selected_emoji); - return true; - } - if (event_name === "tab") { - assert($selected_emoji !== undefined); - $selected_emoji.trigger("focus"); - update_emoji_showcase($selected_emoji); + if ( + event_name === "tab" || + event_name === "down_arrow" || + (is_cursor_at_end && event_name === "right_arrow") + ) { + maybe_change_active_section(0); return true; } return false; @@ -551,8 +544,7 @@ export function navigate(event_name: string, e?: JQuery.KeyDownEvent): boolean { switch (event_name) { case "tab": case "shift_tab": - change_focus_to_filter(); - return true; + return false; case "page_up": maybe_change_active_section(current_section - 1); return true;