-
Notifications
You must be signed in to change notification settings - Fork 808
Description
Proposal: Tab resizing should be differed in order to maintain the close button under the pointer
Summary
When a tab is closed, the current behaviour is to instantly resize all the remaining tabs, as such:
However, this makes it unnecessarily difficult to quickly close several tabs in a row, because the close button changes place as the tabs resize.
A more desirable behaviour can be found in Microsoft Edge, Chrome, Firefox, or in many other implementations of the "tab" concept:
As you can see, the tabs only resize once the pointer has moved away. This makes it significantly easier to close multiple tabs in a row. The only time where this shouldn't be the case is when closing the last tab, in order to maintain the close button under the pointer:
Additionally, on a somewhat related note, the resize animation causes the close button, label, and tab separators to overlap, which looks extremely unpolished:

Rationale
- This is a fairly subtle behaviour, but one that users are extremely accustomed to (as it is implemented in all major browsers). Not having it is therefore extremely jarring.
- Because it is implemented almost everywhere else, it makes WinUI seem unpolished.
- It is most likely quite easy to implement.
Scope
| Capability | Priority |
|---|---|
| Only resize tabs after the pointer leaves the TabView, except if the closed tab is the last one | Must |
| Take into account input method, in order to defer based on pointer movement when using a mouse, but use a time delay otherwise | Could |
| Property to disable this behaviour (although it should be enabled by default) | Could |
Important Notes
- Should the tabs be resized after the pointer moves outside the bounds of the TabView, or outside the bounds of the tab close button?
- Should closing the last tab cause the other tabs to expand, so that the close button remains under the pointer regardless? This UX was followed in Internet Explorer:
but does not exist in modern browsers.



