diff --git a/clients/windows/src/app/connect.rs b/clients/windows/src/app/connect.rs
index aa32d38..e61eb5a 100644
--- a/clients/windows/src/app/connect.rs
+++ b/clients/windows/src/app/connect.rs
@@ -250,7 +250,8 @@ fn connect_with(
}
gamepad.attach(connector.clone());
*shared.stats.lock().unwrap() = Stats::default(); // clear any prior session's numbers
- *shared.handoff.lock().unwrap() = Some((connector, handle.frames.clone()));
+ *shared.handoff.lock().unwrap() =
+ Some((connector, handle.frames.clone(), handle.stop.clone()));
ss.call(Screen::Stream);
}
SessionEvent::Failed {
diff --git a/clients/windows/src/app/mod.rs b/clients/windows/src/app/mod.rs
index 3b55283..ced16a6 100644
--- a/clients/windows/src/app/mod.rs
+++ b/clients/windows/src/app/mod.rs
@@ -95,10 +95,14 @@ impl PartialEq for Svc {
}
}
-/// Cross-thread handoff from the session pump (off-thread) to the stream page (UI thread).
+/// Cross-thread handoff from the session pump (off-thread) to the stream page (UI thread):
+/// the connector (input sends), the decoded-frame channel (render thread), and the session's
+/// stop flag (the disconnect shortcut trips it).
#[derive(Default)]
pub(crate) struct Shared {
- pub(crate) handoff: Mutex