diff --git a/src/cascadia/TerminalApp/TerminalPaneContent.cpp b/src/cascadia/TerminalApp/TerminalPaneContent.cpp index 04a03f8b9d..b7000d9c2d 100644 --- a/src/cascadia/TerminalApp/TerminalPaneContent.cpp +++ b/src/cascadia/TerminalApp/TerminalPaneContent.cpp @@ -66,8 +66,12 @@ namespace winrt::TerminalApp::implementation } void TerminalPaneContent::Close() { + // We deliberately remove the event handlers before closing the control. + // This is to prevent reentrancy issues, pointless callbacks, etc. _removeControlEvents(); + _control.Close(); + // Clear out our media player callbacks, and stop any playing media. This // will prevent the callback from being triggered after we've closed, and // also make sure that our sound stops when we're closed.