From 4cf39120fca88fc78aeaaa55946ab74e5db1a512 Mon Sep 17 00:00:00 2001 From: oobabooga <112222186+oobabooga@users.noreply.github.com> Date: Tue, 10 Jun 2025 18:03:00 -0700 Subject: [PATCH] Fix chat area sometimes not scrolling up to edit message --- js/global_scope_js.js | 9 +++++++++ js/main.js | 8 ++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/js/global_scope_js.js b/js/global_scope_js.js index 801f1574..205d9375 100644 --- a/js/global_scope_js.js +++ b/js/global_scope_js.js @@ -95,12 +95,21 @@ function startEditing(messageElement, messageBody, isUserMessage) { editingInterface.textarea.focus(); editingInterface.textarea.setSelectionRange(rawText.length, rawText.length); + // Temporarily mark as scrolled to prevent auto-scroll + const wasScrolled = window.isScrolled; + window.isScrolled = true; + // Scroll the textarea into view editingInterface.textarea.scrollIntoView({ behavior: "smooth", block: "center" }); + // Restore the original scroll state after animation + setTimeout(() => { + window.isScrolled = wasScrolled; + }, 500); + // Setup event handlers setupEditingHandlers(editingInterface.textarea, messageElement, originalHTML, messageBody, isUserMessage); } diff --git a/js/main.js b/js/main.js index 1953a6be..e970884d 100644 --- a/js/main.js +++ b/js/main.js @@ -145,7 +145,7 @@ typingSibling.insertBefore(typing, typingSibling.childNodes[2]); const targetElement = document.getElementById("chat").parentNode.parentNode.parentNode; targetElement.classList.add("pretty_scrollbar"); targetElement.classList.add("chat-parent"); -let isScrolled = false; +window.isScrolled = false; let scrollTimeout; targetElement.addEventListener("scroll", function() { @@ -154,9 +154,9 @@ targetElement.addEventListener("scroll", function() { let diff = targetElement.scrollHeight - targetElement.clientHeight; if(Math.abs(targetElement.scrollTop - diff) <= 10 || diff == 0) { - isScrolled = false; + window.isScrolled = false; } else { - isScrolled = true; + window.isScrolled = true; } // Clear previous timeout and set new one @@ -182,7 +182,7 @@ const observer = new MutationObserver(function(mutations) { doSyntaxHighlighting(); - if (!isScrolled && targetElement.scrollTop !== targetElement.scrollHeight) { + if (!window.isScrolled && targetElement.scrollTop !== targetElement.scrollHeight) { targetElement.scrollTop = targetElement.scrollHeight; }