aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSuffocate <70031311+lolsuffocate@users.noreply.github.com>2022-11-30 01:11:01 +0000
committerSuffocate <70031311+lolsuffocate@users.noreply.github.com>2022-11-30 01:11:01 +0000
commitc4067c562698740d12ba01260627445f70f5bc24 (patch)
tree35af2370f24ec63db27bed49ed1cbd228f6ba32a
parent4b3c5bc24bffdf429c463a465763b3077fe55eb8 (diff)
downloadstable-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.js16
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);
}
}
})