Fixa GTK-grab-låsningen: en popover åt gången, grab-fria fönsterlistor
All checks were successful
check / check (push) Successful in 1m35s

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>
This commit is contained in:
2026-08-30 00:48:04 +02:00
parent 558c178ec4
commit 6be8c6fe27
3 changed files with 122 additions and 26 deletions

View File

@@ -155,6 +155,9 @@ fn activate(app: &gtk::Application, cfg_path: PathBuf) {
save_generation: Cell::new(0),
urgent: RefCell::new(Default::default()),
hotspot_windows: RefCell::new(Vec::new()),
open_popovers: Cell::new(0),
refresh_pending: Cell::new(false),
current_popover: RefCell::new(None),
});
// CSS + rebuild/refresh-logik