diff options
author | Suffocate <70031311+lolsuffocate@users.noreply.github.com> | 2022-11-30 01:11:01 +0000 |
---|---|---|
committer | Suffocate <70031311+lolsuffocate@users.noreply.github.com> | 2022-11-30 01:11:01 +0000 |
commit | c4067c562698740d12ba01260627445f70f5bc24 (patch) | |
tree | 35af2370f24ec63db27bed49ed1cbd228f6ba32a | |
parent | 4b3c5bc24bffdf429c463a465763b3077fe55eb8 (diff) | |
download | stable-diffusion-webui-gfx803-c4067c562698740d12ba01260627445f70f5bc24.tar.gz stable-diffusion-webui-gfx803-c4067c562698740d12ba01260627445f70f5bc24.tar.bz2 stable-diffusion-webui-gfx803-c4067c562698740d12ba01260627445f70f5bc24.zip |
Restore scroll position on page if giving active element focus changes it
-rw-r--r-- | javascript/progressbar.js | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/javascript/progressbar.js b/javascript/progressbar.js index 43d1d1ce..d58737c4 100644 --- a/javascript/progressbar.js +++ b/javascript/progressbar.js @@ -92,14 +92,26 @@ function check_gallery(id_gallery){ if (prevSelectedIndex !== -1 && galleryButtons.length>prevSelectedIndex && !galleryBtnSelected) { // automatically re-open previously selected index (if exists) activeElement = gradioApp().activeElement; + let scrollX = window.scrollX; + let scrollY = window.scrollY; galleryButtons[prevSelectedIndex].click(); showGalleryImage(); + // When the gallery button is clicked, it gains focus and scrolls itself into view + // We need to scroll back to the previous position + setTimeout(function (){ + window.scrollTo(scrollX, scrollY); + }, 50); + if(activeElement){ // i fought this for about an hour; i don't know why the focus is lost or why this helps recover it - // if somenoe has a better solution please by all means - setTimeout(function() { activeElement.focus() }, 1); + // if someone has a better solution please by all means + setTimeout(function (){ + activeElement.focus({ + preventScroll: true // Refocus the element that was focused before the gallery was opened without scrolling to it + }) + }, 1); } } }) |