[PR #1279] [MERGED] Revoke old event handlers correctly on pane close #24560

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

📋 Pull Request Information

Original PR: https://github.com/microsoft/terminal/pull/1279
Author: @peterdn
Created: 6/15/2019
Status: Merged
Merged: 6/29/2019
Merged by: @DHowett-MSFT

Base: masterHead: bugfix/fix-pane-close-event-handler-revokes


📝 Commits (1)

  • 80f75d5 Revoke old event handlers correctly on pane close

📊 Changes

1 file changed (+9 additions, -4 deletions)

View changed files

📝 src/cascadia/TerminalApp/Pane.cpp (+9 -4)

📄 Description

Summary of the Pull Request

Fixes revoking of old close event handlers after a pane is closed (issue #1278).

References

PR Checklist

  • Closes WriteConsoleOutputWOutsideBuffer test fails occasionally (#1278)
  • CLA signed. If not, go over here and sign the CLA
  • Tests added/passed
  • Requires documentation to be updated
  • I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx

Detailed Description of the Pull Request / Additional comments

Currently, when a pane with non-leaf sibling is closed, various close event handlers are incorrectly revoked leading to dangling references. These are dereferenced next time another close event occurs (i.e. closing a 2nd pane) and causes Terminal to crash.

Additionally it revokes event handlers on old panes and controls (as occurs when a leaf pane is closed).

Validation Steps Performed

Tested manually. If I understand correctly, an automated test could be written after the framework in #1164 lands.


🔄 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/1279 **Author:** [@peterdn](https://github.com/peterdn) **Created:** 6/15/2019 **Status:** ✅ Merged **Merged:** 6/29/2019 **Merged by:** [@DHowett-MSFT](https://github.com/DHowett-MSFT) **Base:** `master` ← **Head:** `bugfix/fix-pane-close-event-handler-revokes` --- ### 📝 Commits (1) - [`80f75d5`](https://github.com/microsoft/terminal/commit/80f75d50deeb4ccfa5c0fa409f909287bf82121d) Revoke old event handlers correctly on pane close ### 📊 Changes **1 file changed** (+9 additions, -4 deletions) <details> <summary>View changed files</summary> 📝 `src/cascadia/TerminalApp/Pane.cpp` (+9 -4) </details> ### 📄 Description <!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? --> ## Summary of the Pull Request Fixes revoking of old close event handlers after a pane is closed (issue #1278). <!-- Other than the issue solved, is this relevant to any other issues/existing PRs? --> ## References <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist * [x] Closes #1278 * [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA * [ ] Tests added/passed * [ ] Requires documentation to be updated * [ ] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx <!-- Provide a more detailed description of the PR, other things fixed or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments Currently, when a pane with non-leaf sibling is closed, various close event handlers are incorrectly revoked leading to dangling references. These are dereferenced next time another close event occurs (i.e. closing a 2nd pane) and causes Terminal to crash. Additionally it revokes event handlers on old panes and controls (as occurs when a leaf pane is closed). <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed Tested manually. If I understand correctly, an automated test could be written after the framework in #1164 lands. --- <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:04:00 +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#24560