1
0
mirror of https://github.com/glanceapp/glance.git synced 2025-07-13 13:06:14 +02:00

Delay changing popover display

Previously would make the popover visible and then reposition
it on the next frame in order to avoid getting called recursively
due to the observer, however this causes the scrollbar to appear
if it wasn't already visible for a single frame which is janky.

This change fixes that.
This commit is contained in:
Svilen Markov
2025-02-15 13:53:13 +00:00
parent 3043a0bd15
commit e01af4adec

@ -98,7 +98,6 @@ function showPopover() {
} }
contentElement.style.maxWidth = contentMaxWidth; contentElement.style.maxWidth = contentMaxWidth;
containerElement.style.display = "block";
activeTarget.classList.add("popover-active"); activeTarget.classList.add("popover-active");
document.addEventListener("keydown", handleHidePopoverOnEscape); document.addEventListener("keydown", handleHidePopoverOnEscape);
window.addEventListener("resize", queueRepositionContainer); window.addEventListener("resize", queueRepositionContainer);
@ -106,6 +105,8 @@ function showPopover() {
} }
function repositionContainer() { function repositionContainer() {
containerElement.style.display = "block";
const targetBounds = activeTarget.dataset.popoverAnchor !== undefined const targetBounds = activeTarget.dataset.popoverAnchor !== undefined
? activeTarget.querySelector(activeTarget.dataset.popoverAnchor).getBoundingClientRect() ? activeTarget.querySelector(activeTarget.dataset.popoverAnchor).getBoundingClientRect()
: activeTarget.getBoundingClientRect(); : activeTarget.getBoundingClientRect();