Merge branch 'pr-594' into visual-pr-playground

This commit is contained in:
pewdiepie-archdaemon
2026-06-02 06:26:31 +09:00
2 changed files with 23 additions and 4 deletions

View File

@@ -938,9 +938,24 @@ function _rerenderCachedModels() {
document.body.appendChild(popup);
panel._gpuProbe.popup = popup;
// Position below the button using viewport coords (popup is
// position:fixed). Measure the popup AFTER it's in the DOM so
// we get the real rendered size, then clamp both axes so the
// popup stays fully visible — GPU buttons near the right edge
// of the modal previously anchored the popup mostly off-screen.
const r = anchorBtn.getBoundingClientRect();
popup.style.left = `${Math.max(8, r.left)}px`;
popup.style.top = `${r.bottom + 4 + window.scrollY}px`;
const vw = window.innerWidth || document.documentElement.clientWidth;
const vh = window.innerHeight || document.documentElement.clientHeight;
const pw = popup.offsetWidth || 320;
const ph = popup.offsetHeight || 200;
let left = r.left;
let top = r.bottom + 4;
// Push left so the popup doesn't overflow the right edge.
if (left + pw > vw - 8) left = Math.max(8, vw - pw - 8);
// If there isn't room below, render above the button instead.
if (top + ph > vh - 8) top = Math.max(8, r.top - ph - 4);
popup.style.left = `${left}px`;
popup.style.top = `${top}px`;
popup.querySelector('.cookbook-gpu-popup-close')?.addEventListener('click', _closeProbePopup);
popup.querySelectorAll('.cookbook-gpu-kill').forEach(btn => {

View File

@@ -17874,8 +17874,12 @@ body.gallery-selecting .gallery-dl-btn,
.cookbook-gpu-clear:disabled { opacity: 0.4; cursor: wait; }
/* GPU probe popup — per-GPU process list with kill buttons */
.cookbook-gpu-popup {
position: absolute;
z-index: 240;
/* Fixed positioning (relative to viewport) so we never get pulled into
a scrolling/transform stacking context from an ancestor. Z-index has
to clear the cookbook modal (260) and the rest of the high-z UI
layers (themed-confirm and various overlays sit around 9000-10000). */
position: fixed;
z-index: 10010;
min-width: 280px;
max-width: 420px;
background: var(--panel, #1a1a1a);