diff --git a/src/session.rs b/src/session.rs index b57a67a..5ec247b 100644 --- a/src/session.rs +++ b/src/session.rs @@ -223,7 +223,11 @@ async fn refresh_slots( let mut g = session.lock().await; g.binds_on = true; tracing::info!("routing on ({} binds)", specs.len()); - return finish_vfx(g, vfx_tx, hub, cursor).await; + let r = finish_vfx(g, vfx_tx, hub, cursor).await; + // Bug #10: don't drop sync_slot_overlays on early-return + // paths. The non-early path below already calls it. + sync_slot_overlays(session, slot_hub).await; + return r; } } else if g.binds_on { g.binds_on = false; @@ -232,7 +236,10 @@ async fn refresh_slots( hypr::clear_binds().await.ok(); tracing::info!("routing off (focus left the team)"); let g = session.lock().await; - return finish_vfx(g, vfx_tx, hub, cursor).await; + let r = finish_vfx(g, vfx_tx, hub, cursor).await; + // Bug #10: keep this in sync with the early-return above. + sync_slot_overlays(session, slot_hub).await; + return r; } }