[PR #4337] [MERGED] Shut down all controls under a tab before we remove it from the list #25712

Open
opened 2026-01-31 09:11:18 +00:00 by claunia · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/microsoft/terminal/pull/4337
Author: @DHowett-MSFT
Created: 1/22/2020
Status: Merged
Merged: 1/23/2020
Merged by: @undefined

Base: masterHead: dev/duhowett/i_ll_show_you_blocking


📝 Commits (1)

  • 176cb6b Shut down all controls under a tab before we remove it from the list

📊 Changes

9 files changed (+71 additions, -14 deletions)

View changed files

📝 src/cascadia/TerminalApp/Pane.cpp (+19 -0)
📝 src/cascadia/TerminalApp/Pane.h (+1 -0)
📝 src/cascadia/TerminalApp/Tab.cpp (+7 -0)
📝 src/cascadia/TerminalApp/Tab.h (+1 -0)
📝 src/cascadia/TerminalApp/TerminalPage.cpp (+9 -5)
📝 src/cascadia/TerminalControl/TSFInputControl.cpp (+18 -9)
📝 src/cascadia/TerminalControl/TSFInputControl.h (+12 -0)
📝 src/cascadia/TerminalControl/TSFInputControl.idl (+2 -0)
📝 src/cascadia/TerminalControl/TermControl.cpp (+2 -0)

📄 Description

This commit introduces a new recursive pane shutdown that will give all
controls under a tab a chance to clean up their state before beign
detached from the UI. It also reorders the call to LastTabClosed() so
that the application does not exit before the final connections are
terminated.

It also teaches TSFInputControl how to shut down to avoid a dramatic
platform bug.

Fixes #4159.
Fixes #4336.

PR Checklist

  • CLA signed
  • I've discussed this with core contributors already.

Validation Steps Performed

Validated through manual terminal teardown within and without the debugger, given a crazy number of panes and tabs.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/microsoft/terminal/pull/4337 **Author:** [@DHowett-MSFT](https://github.com/DHowett-MSFT) **Created:** 1/22/2020 **Status:** ✅ Merged **Merged:** 1/23/2020 **Merged by:** [@undefined](undefined) **Base:** `master` ← **Head:** `dev/duhowett/i_ll_show_you_blocking` --- ### 📝 Commits (1) - [`176cb6b`](https://github.com/microsoft/terminal/commit/176cb6b80be3b9e5ae45771b527256c88ee0d18e) Shut down all controls under a tab before we remove it from the list ### 📊 Changes **9 files changed** (+71 additions, -14 deletions) <details> <summary>View changed files</summary> 📝 `src/cascadia/TerminalApp/Pane.cpp` (+19 -0) 📝 `src/cascadia/TerminalApp/Pane.h` (+1 -0) 📝 `src/cascadia/TerminalApp/Tab.cpp` (+7 -0) 📝 `src/cascadia/TerminalApp/Tab.h` (+1 -0) 📝 `src/cascadia/TerminalApp/TerminalPage.cpp` (+9 -5) 📝 `src/cascadia/TerminalControl/TSFInputControl.cpp` (+18 -9) 📝 `src/cascadia/TerminalControl/TSFInputControl.h` (+12 -0) 📝 `src/cascadia/TerminalControl/TSFInputControl.idl` (+2 -0) 📝 `src/cascadia/TerminalControl/TermControl.cpp` (+2 -0) </details> ### 📄 Description This commit introduces a new recursive pane shutdown that will give all controls under a tab a chance to clean up their state before beign detached from the UI. It also reorders the call to LastTabClosed() so that the application does not exit before the final connections are terminated. It also teaches TSFInputControl how to shut down to avoid a dramatic platform bug. Fixes #4159. Fixes #4336. ## PR Checklist * [x] CLA signed * [x] I've discussed this with core contributors already. ## Validation Steps Performed Validated through manual terminal teardown within and without the debugger, given a crazy number of panes and tabs. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
claunia added the pull-request label 2026-01-31 09:11:18 +00:00
Sign in to join this conversation.
No Label pull-request
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#25712