popdown() emittar closed synkront, och closed-hanteraren lånar också
popover-stacken — register_popover höll kvar sitt borrow_mut under
drain-loopen → 'RefCell already borrowed'-panik vid högerklick när en
tidigare popover låg kvar i stacken. Stacken töms nu till en lokal
Vec innan popdown körs.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- ALLA popovers är nu grab-fria (autohide av) med gemensam
auto-stängning: pekar-leave + delay, watchdog om pekaren aldrig når
popovern, och skroll-stegning räknas som aktivitet. Grabbande menyer
krockade med tooltips ('grabbing popup with non-top most parent') —
det var därför högerklicksmenyn ibland inte öppnades.
- Popover-stack ersätter en-åt-gången: en popover vars ankare sitter i
en öppen popover nästlas i stället för att stänga föräldern, och
förälderns auto-stängning pausas medan ett barn är överst.
- Högerklick på en rad i fönsterlistan öppnar den rutans egen meny
(nästlad); högerklick på gruppikonen gäller som förut alla fönster
i gruppen.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Med en grupps lista öppen stegar skroll (på gruppikonen eller över
listan) markeringen mellan raderna — markerad rad får accentbakgrund
och triggar samma förhandsvisning som hover (peek/fokus enligt
list_hover). Funkar i både hover- och klickläge; utan öppen lista
beter sig skroll som förut (cykla fönster). Watchdogen räknar
stegning som aktivitet så listan inte stängs mitt i.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Rotorsak till att alla klick slutade fungera (även i settings):
grabbing-popovers i snabb följd + ikon-ombyggen som rev en öppen
popovers förälder gav 'Tried to map a grabbing popup with a non-top
most parent' i mängder och en fastnad pekar-grab på Wayland.
- refresh_items skjuts upp medan en popover är öppen (räknare i Ctx)
och körs när den stängts — föräldern rivs aldrig under en öppen popup.
- Bara en popover åt gången; ny popup stänger den gamla först.
- Fönsterlistan grabbar aldrig (autohide av): stängs på pointer-leave
(400 ms hover-läge / 700 ms klick-läge) + watchdog om pekaren aldrig
når listan. Därmed kan man öppna nästa grupps lista direkt utan att
första klicket bara stänger den förra.
- Listan öppnas riktad bort från dockans kant och radernas
hover-effekter armeras efter 250 ms, så raden under pekaren vid
öppning inte triggas av misstag.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- outputs{} är nu generiska JSON-överridar: vilket configfält som helst
kan sättas per skärm och deep-mergas över den globala configen
(Config::for_output). Docka, autohide, dodge, beteende, hotspots och
CSS (scopat på window.o-<connector>) läser skärmens effektiva config.
- Settings har skärmväljare överst: klickbar förhandsgranskning av
skärmarna + deras barer, 'Alla skärmar' (standard) eller enskild
skärm. Bara ändrade fält sparas som override (json-diff);
återställ-knapp tar bort skärmens överridar. * = har egna.
- Marginaler: skuggutrymmet läggs inte längre på förankrade sidor så
0 = kant i kant; minusvärden tillåts (A ner till -64, B/C -256).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Ny layoutmodell: alignment (center/start/end längs kanten), expand
(ö eller täck hela kanten) och tre marginaler — A från kanten,
B/C i början/slutet av kanten. Funkar för alla fyra positionerna.
- Settings → Layout har en ritad illustration (cairo) som visar vad
A/B/C betyder för vald position och uppdateras live.
- Fönsterlistan för grupper kan öppnas vid hover (group_popup) och
stängs när pekaren lämnar den; hover på en rad kan peeka (alla andra
fönster tonas ner via Wayfires alpha-plugin) eller fokusera fönstret
(list_hover: peek/focus/none).
- Appikon (assets/waydock.svg) + .desktop-fil; installeras av
install.sh och används av settings-fönstret.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>