mirror of
https://github.com/rustdesk/rustdesk.git
synced 2026-06-10 02:14:53 +03:00
RemotePage.dispose() only reaches sessionClose at the tail of gFFI.close(), behind several awaits (canvas save, image update, the enable_soft_keyboard platform call). If the app is backgrounded while the page is disposing, dispose can be suspended before that runs, so the session is never torn down. The next reconnect re-attaches to the leaked session (mobile reuses a constant sessionId) and is stuck on "Connecting..." forever while the orphaned io_loop keeps streaming. Dispatch sessionClose at the start of dispose so teardown happens synchronously on route pop, before backgrounding can interrupt it. The sessionClose in gFFI.close() becomes a no-op once the session is already removed. Fixes #15060 Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
flutter_hbb
A new Flutter project.
Getting Started
This project is a starting point for a Flutter application.
A few resources to get you started if this is your first Flutter project:
For help getting started with Flutter development, view the online documentation, which offers tutorials, samples and guidance on mobile development, and a full API reference.