[PR #5809] Manually select a new tab when we're in fullscreen mode #26483

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

Original Pull Request: https://github.com/microsoft/terminal/pull/5809

State: closed
Merged: Yes


Summary of the Pull Request

If we're fullscreen, the TabView isn't Visible. If it's not Visible, it's not going to raise a SelectionChanged event, which is what we usually use to focus another tab. Instead, we'll have to do it manually here.

So, what we're going to try to do is move the focus to the tab to the left, within the bounds of how many tabs we have.

EX: we have 4 tabs: [A, B, C, D]. If we close:

  • A (tabIndex=0): We'll want to focus tab B (now in index 0)
  • B (tabIndex=1): We'll want to focus tab A (now in index 0)
  • C (tabIndex=2): We'll want to focus tab B (now in index 1)
  • D (tabIndex=3): We'll want to focus tab C (now in index 2)

_UpdatedSelectedTab will do the work of setting up the new tab as the focused one, and unfocusing all the others.

Also, we need to manually set the SelectedItem of the tabView here. If we don't, then the TabView will technically not have a selected item at all, which can make things like ClosePane not work correctly.

References

PR Checklist

Validation Steps Performed

Played with it a bunch

**Original Pull Request:** https://github.com/microsoft/terminal/pull/5809 **State:** closed **Merged:** Yes --- ## Summary of the Pull Request If we're fullscreen, the TabView isn't `Visible`. If it's not `Visible`, it's _not_ going to raise a `SelectionChanged` event, which is what we usually use to focus another tab. Instead, we'll have to do it manually here. So, what we're going to try to do is move the focus to the tab to the left, within the bounds of how many tabs we have. EX: we have 4 tabs: [A, B, C, D]. If we close: * A (`tabIndex=0`): We'll want to focus tab B (now in index 0) * B (`tabIndex=1`): We'll want to focus tab A (now in index 0) * C (`tabIndex=2`): We'll want to focus tab B (now in index 1) * D (`tabIndex=3`): We'll want to focus tab C (now in index 2) `_UpdatedSelectedTab` will do the work of setting up the new tab as the focused one, and unfocusing all the others. Also, we need to _manually_ set the SelectedItem of the tabView here. If we don't, then the TabView will technically not have a selected item at all, which can make things like ClosePane not work correctly. ## References ## PR Checklist * [x] Closes #5799 * [x] I work here * [ ] Tests added/passed * [n/a] Requires documentation to be updated ## Validation Steps Performed Played with it a bunch
claunia added the pull-request label 2026-01-31 09:16:21 +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#26483