From 2ed25c14de953d8ecd9c7561c1cdee959304161e Mon Sep 17 00:00:00 2001 From: dev Date: Sun, 7 Jun 2026 09:00:04 -0500 Subject: [PATCH] fix(main): pass rect to setMode and remove redundant _positionAnchored call (anchor crash fix) --- src/main.js | 14 +++++++------- src/ui.js | 1 + 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/main.js b/src/main.js index ddd7e8d..8ea41e3 100644 --- a/src/main.js +++ b/src/main.js @@ -100,13 +100,13 @@ function start() { const el = findAnchorElement(); if (el) { const rect = el.getBoundingClientRect(); - dialog.setMode('anchored', { canAnchor: true }); - dialog._positionAnchored(rect); - // observe - const ro = new ResizeObserver(() => { - if (prefs.mode === 'anchored') dialog._positionAnchored(el.getBoundingClientRect()); - }); - ro.observe(el); + dialog.setMode('anchored', { canAnchor: true, rect: rect }); + if (typeof ResizeObserver !== 'undefined') { + const ro = new ResizeObserver(function () { + if (prefs.mode === 'anchored') dialog._positionAnchored(el.getBoundingClientRect()); + }); + ro.observe(el); + } anchorError = null; return; } diff --git a/src/ui.js b/src/ui.js index fee5988..0744ebd 100644 --- a/src/ui.js +++ b/src/ui.js @@ -135,6 +135,7 @@ export class Dialog { } _positionAnchored(rect) { + if (!rect) return; // defensive: setMode may be called without a rect const dialogRect = this.root.getBoundingClientRect(); let top = rect.top - dialogRect.height - 8; if (top < 8) top = 20;