diff --git a/client/src/app.rs b/client/src/app.rs index 39cfca3..36c3045 100644 --- a/client/src/app.rs +++ b/client/src/app.rs @@ -45,8 +45,7 @@ impl LesavkaClientApp { let (kbd_tx, _) = broadcast::channel(1024); let (mou_tx, _) = broadcast::channel(4096); - let mut agg = InputAggregator::new(dev_mode, kbd_tx.clone(), mou_tx.clone()); - agg.init()?; // grab devices immediately + let agg = InputAggregator::new(dev_mode, kbd_tx.clone(), mou_tx.clone()); Ok(Self { aggregator: Some(agg), server_addr, dev_mode, kbd_tx, mou_tx }) } @@ -69,8 +68,9 @@ impl LesavkaClientApp { .tcp_nodelay(true) .connect_lazy(); - /*────────── input aggregator task ─────────────*/ - let aggregator = self.aggregator.take().expect("InputAggregator present"); + /*────────── input aggregator task (grab after handshake) ─────────────*/ + let mut aggregator = self.aggregator.take().expect("InputAggregator present"); + aggregator.init()?; // grab devices now that handshake succeeded let agg_task = tokio::spawn(async move { let mut a = aggregator; a.run().await