diff --git a/web/honeybar/honeybar.js b/web/honeybar/honeybar.js index 02cf006..0454847 100644 --- a/web/honeybar/honeybar.js +++ b/web/honeybar/honeybar.js @@ -321,6 +321,14 @@ }); } + // Einmal verdrahtet, nicht bei jedem Einblenden neu. + // + // Der Fehler dahinter: mount() hing seine Zuhörer selbst an. Wer die HoneyBar + // einklappte und über den Strich zurückholte, hatte sie doppelt — der Klick + // auf das Menü öffnete und schloss es im selben Zug, und der Punkt + // „honeybar einklappen" war nicht mehr erreichbar. + let verdrahtet = false; + function mount() { document.body.appendChild(host); @@ -339,10 +347,16 @@ render(); applySettings(settings); + verdrahten(); clock(); setInterval(clock, 20000); root.getElementById("home").href = homeUrl; + } + + function verdrahten() { + if (verdrahtet) return; + verdrahtet = true; const menu = root.getElementById("menu"); const btn = root.getElementById("menuBtn"); @@ -392,11 +406,15 @@ ].join(";"); nub.title = "HoneyBar einblenden"; const r = nub.attachShadow({ mode: "open" }); + // Der Strich trug seine Farben fest verdrahtet und blieb deshalb bernstein, + // auch wenn in HoneyOS Grün eingestellt war. Er gehört zur HoneyBar, also + // trägt er dieselbe Röhre. + const t = ROEHREN[(settings && settings.phosphor) || "amber"] || ROEHREN.amber; r.innerHTML = `