recent_topics: Directly pass jquery element instead of event object.

This commit is contained in:
Aman Agrawal
2021-03-16 14:15:33 +00:00
committed by Tim Abbott
parent 493c00f2ad
commit f79a59d5f8
3 changed files with 15 additions and 13 deletions

View File

@@ -450,7 +450,7 @@ export function initialize() {
$("body").on("click", "#recent_topics_search", (e) => { $("body").on("click", "#recent_topics_search", (e) => {
e.stopPropagation(); e.stopPropagation();
recent_topics.change_focused_element(e, "click"); recent_topics.change_focused_element($(e.target), "click");
}); });
$("body").on("click", "#recent_topics_table .on_hover_topic_read", (e) => { $("body").on("click", "#recent_topics_table .on_hover_topic_read", (e) => {
@@ -465,7 +465,7 @@ export function initialize() {
$("body").on("click", ".btn-recent-filters", (e) => { $("body").on("click", ".btn-recent-filters", (e) => {
e.stopPropagation(); e.stopPropagation();
recent_topics.change_focused_element(e, "click"); recent_topics.change_focused_element($(e.target), "click");
recent_topics.set_filter(e.currentTarget.dataset.filter); recent_topics.set_filter(e.currentTarget.dataset.filter);
recent_topics.update_filters_view(); recent_topics.update_filters_view();
}); });

View File

@@ -216,7 +216,10 @@ export function in_content_editable_widget(e) {
// Returns true if we handled it, false if the browser should. // Returns true if we handled it, false if the browser should.
export function process_escape_key(e) { export function process_escape_key(e) {
if (hashchange.in_recent_topics_hash() && recent_topics.change_focused_element(e, "escape")) { if (
hashchange.in_recent_topics_hash() &&
recent_topics.change_focused_element($(e.target), "escape")
) {
// Recent topics uses escape to make focus from RT search / filters to topics table. // Recent topics uses escape to make focus from RT search / filters to topics table.
// If focus already in table it returns false. // If focus already in table it returns false.
return true; return true;
@@ -532,7 +535,7 @@ export function process_hotkey(e, hotkey) {
!$(".user-list-filter").is(":focus") && !$(".user-list-filter").is(":focus") &&
!$(".stream-list-filter").is(":focus") !$(".stream-list-filter").is(":focus")
) { ) {
return recent_topics.change_focused_element(e, event_name); return recent_topics.change_focused_element($(e.target), event_name);
} }
} }

View File

@@ -565,14 +565,13 @@ export function focus_clicked_element($elt, col) {
row_focus = $elt.closest("tr").index(); row_focus = $elt.closest("tr").index();
} }
export function change_focused_element(e, input_key) { export function change_focused_element($elt, input_key) {
// Called from hotkeys.js; like all logic in that module, // Called from hotkeys.js; like all logic in that module,
// returning true will cause the caller to do // returning true will cause the caller to do
// preventDefault/stopPropagation; false will let the browser // preventDefault/stopPropagation; false will let the browser
// handle the key. // handle the key.
const $elem = $(e.target);
if (e.target.id === "recent_topics_search") { if ($elt.attr("id") === "recent_topics_search") {
// Since the search box a text area, we want the browser to handle // Since the search box a text area, we want the browser to handle
// Left/Right and selection within the widget; but if the user // Left/Right and selection within the widget; but if the user
// arrows off the edges, we should move focus to the adjacent widgets.. // arrows off the edges, we should move focus to the adjacent widgets..
@@ -631,27 +630,27 @@ export function change_focused_element(e, input_key) {
set_table_focus(row_focus, col_focus); set_table_focus(row_focus, col_focus);
return true; return true;
} }
} else if ($elem.hasClass("btn-recent-filters")) { } else if ($elt.hasClass("btn-recent-filters")) {
switch (input_key) { switch (input_key) {
case "click": case "click":
current_focus_elem = $elem; current_focus_elem = $elt;
return true; return true;
case "shift_tab": case "shift_tab":
case "vim_left": case "vim_left":
case "left_arrow": case "left_arrow":
if (filter_buttons().first()[0] === $elem[0]) { if (filter_buttons().first()[0] === $elt[0]) {
current_focus_elem = $("#recent_topics_search"); current_focus_elem = $("#recent_topics_search");
} else { } else {
current_focus_elem = $elem.prev(); current_focus_elem = $elt.prev();
} }
break; break;
case "tab": case "tab":
case "vim_right": case "vim_right":
case "right_arrow": case "right_arrow":
if (filter_buttons().last()[0] === $elem[0]) { if (filter_buttons().last()[0] === $elt[0]) {
current_focus_elem = $("#recent_topics_search"); current_focus_elem = $("#recent_topics_search");
} else { } else {
current_focus_elem = $elem.next(); current_focus_elem = $elt.next();
} }
break; break;
case "vim_down": case "vim_down":