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.
This commit is contained in:
Raj Vishwakarma 2025-10-24 08:50:26 +00:00 committed by Tim Abbott
parent ac1b230ad6
commit 16d98589cf

View File

@ -509,19 +509,12 @@ export function navigate(event_name: string, e?: JQuery.KeyDownEvent): boolean {
// Move down into emoji map.
const filter_text = $<HTMLInputElement>("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;