Skip to content
Open
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions src/client/ClientGameRunner.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1121,6 +1121,13 @@ export class ClientGameRunner {
public stop() {
this.soundManager.dispose();
this.graphicsListenerAbort?.abort();
// Detach the input handler's window/canvas listeners and its EventBus
// subscription. Nothing else ever did, and the bus is created once per
// page, so a handler from a finished game kept translating keys into
// events that the next game receives, and joining another game without a
// page reload stacked a second live handler on top. Idempotent, like the
// disposals around it.
this.input.destroy();
this.disposeRenderer?.();
if (!this.isActive) return;

Expand Down
Loading
Loading