Commit e373fd0c authored by Thottyottyotty's avatar Thottyottyotty

rewrite uiElementIsVisible

rewrite visibility checking to be more generic/cleaner as well as add functionality to check if the element is scrolled on screen for more intuitive paste-target selection
parent a375acdd
......@@ -92,19 +92,17 @@ document.addEventListener('keydown', function(e) {
* checks that a UI element is not in another hidden element or tab content
*/
function uiElementIsVisible(el) {
let isVisible = !el.closest('.\\!hidden');
if (!isVisible) {
return false;
if (el === document) {
return true;
}
while ((isVisible = el.closest('.tabitem')?.style.display) !== 'none') {
if (!isVisible) {
return false;
} else if (el.parentElement) {
el = el.parentElement;
} else {
break;
}
}
return isVisible;
const computedStyle = getComputedStyle(el);
const isVisible = computedStyle.display !== 'none';
const clRect = el.getBoundingClientRect();
const windowHeight = window.innerHeight;
const onScreen = clRect.bottom > 0 && clRect.top < windowHeight;
if (!isVisible || !onScreen) return false;
return uiElementIsVisible(el.parentNode);
}
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