SIGN IN SIGN UP
microsoft / terminal UNCLAIMED

The new Windows Terminal and the original Windows console host, all in the same place!

0 0 91 C++

Replace `confirmCloseAllTabs` with `confirmOnClose` (#20055)

## Summary of the Pull Request
Replaces the `warning.confirmCloseAllTabs` setting with a
`warning.confirmOnClose` enum setting that accepts the following:
- `never`: don't present a warning dialog when closing a session
- `automatic`: present a warning dialog when closing multiple tabs/panes
at once
- `always`: present a warning dialog when closing any session

The confirmation dialog contains a "don't ask me again" checkbox. When
checked, we update the setting to `never`.

This setting also affects the following actions:
- "close other tabs"
- "close tabs after"
- "close other panes"
- "quit"
The appropriate confirmation dialog is shown in these scenarios. We also
present an aggregate dialog instead of prompting the user once per
tab/pane. If there are no other tabs/panes, we don't present a dialog
and treat the key binding as unhandled (passing the key through).

## References and Relevant Issues
Iteration of #19944 

## Validation Steps Performed
- closing a tab:
   - ✅ 1 pane --> no dialog
   - ✅ 2 panes --> dialog
   - ✅ action and middle clicking tab trigger same flow
- close all other tabs:
   - ✅ no other tabs --> no dialog
   - ✅ 1 other tab --> dialog
- close all other panes:
   - ✅ 1 pane --> no dialog
   - ✅ 2 panes --> dialog
- close all tabs after the current tab:
   - ✅ no tabs after --> no dialog (even if tabs before)
   - ✅ 1 tab after --> dialog
- close window:
   - ✅ 2 tabs --> dialog
   - ✅ 2 panes --> dialog
   - ✅ 1 tab with one pane --> no dialog
- Quit the Terminal:
   - ✅ 3 windows --> dialog
   - ✅1 window --> dialog
- ✅ "don't ask me again" checkbox checked --> setting changed to "never"
- ✅ "never" --> no dialog for scenarios above
- ✅ "always" --> dialog always appears, even when closing a single pane

## PR Checklist
Closes #5301 
Closes #6641
"don't ask me again" checkbox is also mentioned in #10000 

Co-authored by @zadjii-msft
C
Carlos Zamora committed
b753e3dee3b28d4f3cd7d882b5d289c35e2e2f6c
Parent: a834313
Committed by GitHub <noreply@github.com> on 5/4/2026, 5:43:34 PM