fix(honeybar): eingeklappt trug der Strich fest verdrahtetes Bernstein

Und einklappen ging nur einmal: mount() haengte seine Zuhoerer selbst an, also
hatte sie doppelt, wer die HoneyBar ueber den Strich zurueckholte. Der Klick
aufs Menue oeffnete und schloss es im selben Zug — der Punkt "honeybar
einklappen" war damit unerreichbar. Das Verdrahten passiert jetzt einmal.

Nachgestellt mit gruener Roehre: Strich gruen, aus- und wieder einklappen
funktioniert beliebig oft.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
marcandClaude Opus 5 committed 2026-08-29 17:39:31 +02:00
1 parent 9da6503837
commit 510525e2d0
1 file changed
+19 -1
+19 -1
View File
@@ -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() { function mount() {
document.body.appendChild(host); document.body.appendChild(host);
@@ -339,10 +347,16 @@
render(); render();
applySettings(settings); applySettings(settings);
verdrahten();
clock(); clock();
setInterval(clock, 20000); setInterval(clock, 20000);
root.getElementById("home").href = homeUrl; root.getElementById("home").href = homeUrl;
}
function verdrahten() {
if (verdrahtet) return;
verdrahtet = true;
const menu = root.getElementById("menu"); const menu = root.getElementById("menu");
const btn = root.getElementById("menuBtn"); const btn = root.getElementById("menuBtn");
@@ -392,11 +406,15 @@
].join(";"); ].join(";");
nub.title = "HoneyBar einblenden"; nub.title = "HoneyBar einblenden";
const r = nub.attachShadow({ mode: "open" }); 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 = ` r.innerHTML = `
<style> <style>
.strich { .strich {
height: 3px; height: 3px;
background: linear-gradient(90deg, #6b4718, #ffb641 50%, #6b4718); background: linear-gradient(90deg, ${t.dim}, ${t.p} 50%, ${t.dim});
opacity: .55; opacity: .55;
transition: opacity .15s, height .15s; transition: opacity .15s, height .15s;
} }