Commit fe7bcbe3 authored by AUTOMATIC1111's avatar AUTOMATIC1111 Committed by GitHub

Merge pull request #10534 from thot-experiment/dev

rewrite uiElementIsVisible
parents 8c1148b9 7b61acbd
...@@ -81,7 +81,10 @@ window.addEventListener('paste', e => { ...@@ -81,7 +81,10 @@ window.addEventListener('paste', e => {
} }
const visibleImageFields = [...gradioApp().querySelectorAll('[data-testid="image"]')] const visibleImageFields = [...gradioApp().querySelectorAll('[data-testid="image"]')]
.filter(el => uiElementIsVisible(el)); .filter(el => uiElementIsVisible(el))
.sort((a,b) => uiElementInSight(b) - uiElementInSight(a));
if (!visibleImageFields.length) { if (!visibleImageFields.length) {
return; return;
} }
......
...@@ -92,19 +92,21 @@ document.addEventListener('keydown', function(e) { ...@@ -92,19 +92,21 @@ document.addEventListener('keydown', function(e) {
* checks that a UI element is not in another hidden element or tab content * checks that a UI element is not in another hidden element or tab content
*/ */
function uiElementIsVisible(el) { function uiElementIsVisible(el) {
let isVisible = !el.closest('.\\!hidden'); if (el === document) {
if (!isVisible) { return true;
return false;
} }
while ((isVisible = el.closest('.tabitem')?.style.display) !== 'none') { const computedStyle = getComputedStyle(el);
if (!isVisible) { const isVisible = computedStyle.display !== 'none';
return false;
} else if (el.parentElement) { if (!isVisible) return false;
el = el.parentElement; return uiElementIsVisible(el.parentNode);
} else { }
break;
} function uiElementInSight(el) {
} const clRect = el.getBoundingClientRect();
return isVisible; const windowHeight = window.innerHeight;
const isOnScreen = clRect.bottom > 0 && clRect.top < windowHeight;
return isOnScreen;
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment