recent_view_ui: Fix first row being focused after scrolling to bottom.

If recent view load more banner is at the center as a result of
`document.elementFromPoint(topic_center_x, topic_center_y)`,
there is no `tr` to focus, resulting in first row to be focused
as the closest element as per previous logic.

To fix it, we just focus the last row which is just above the
load more banner and is visible.
This commit is contained in:
Aman Agrawal 2024-06-04 08:37:57 +00:00 committed by Tim Abbott
parent 3cc7613841
commit 4750f84ba8
1 changed files with 4 additions and 1 deletions

View File

@ -1177,7 +1177,10 @@ function recenter_focus_if_off_screen(): void {
const topic_center_y = (position.top + position.bottom) / 2; const topic_center_y = (position.top + position.bottom) / 2;
const topic_element = document.elementFromPoint(topic_center_x, topic_center_y); const topic_element = document.elementFromPoint(topic_center_x, topic_center_y);
if (topic_element === null) { if (
topic_element === null ||
$(topic_element).parents("#recent-view-content-tbody").length === 0
) {
// There are two theoretical reasons that the center // There are two theoretical reasons that the center
// element might be null. One is that we haven't rendered // element might be null. One is that we haven't rendered
// the view yet; but in that case, we should have returned // the view yet; but in that case, we should have returned