From c1d610e3905b66dabf015fdad52b281ac9734da5 Mon Sep 17 00:00:00 2001 From: DominikDoom Date: Mon, 8 May 2023 19:06:11 +0200 Subject: [PATCH] Fix list sometimes not scrolling to top (again) --- javascript/tagAutocomplete.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/javascript/tagAutocomplete.js b/javascript/tagAutocomplete.js index b61fd64..a93bb83 100644 --- a/javascript/tagAutocomplete.js +++ b/javascript/tagAutocomplete.js @@ -241,6 +241,8 @@ function showResults(textArea) { if (resultsDiv.style.left) resultsDiv.style.removeProperty("left"); } + // Reset here too to make absolutely sure the browser registers it + resultsDiv.scrollTop = 0; } function hideResults(textArea) { let textAreaId = getTextAreaIdentifier(textArea); @@ -372,6 +374,7 @@ function addResultsToList(textArea, results, tagword, resetList) { if (resetList) { resultsList.innerHTML = ""; selectedTag = null; + oldSelectedTag = null; resultDiv.scrollTop = 0; resultCount = 0; } @@ -518,8 +521,11 @@ function addResultsToList(textArea, results, tagword, resetList) { } resultCount = nextLength; - if (resetList) + if (resetList) { + selectedTag = null; + oldSelectedTag = null; resultDiv.scrollTop = 0; + } } function updateSelectionStyle(textArea, newIndex, oldIndex) { @@ -779,8 +785,8 @@ function navigateInList(textArea, event) { hideResults(textArea); break; } - if (selectedTag === resultCount - 1 - && (event.key === keys["MoveUp"] || event.key === keys["MoveDown"] || event.key === keys["JumpToStart"] || event.key === keys["JumpToEnd"])) { + let moveKeys = [keys["MoveUp"], keys["MoveDown"], keys["JumpUp"], keys["JumpDown"], keys["JumpToStart"], keys["JumpToEnd"]]; + if (selectedTag === resultCount - 1 && moveKeys.includes(event.key)) { addResultsToList(textArea, results, tagword, false); } // Update highlighting