Skip to content

Add support for hiding the tab close button#13348

Merged
84 commits merged intomainfrom
dev/migrie/f/3335-tab-close-btn
Aug 1, 2022
Merged

Add support for hiding the tab close button#13348
84 commits merged intomainfrom
dev/migrie/f/3335-tab-close-btn

Conversation

@zadjii-msft
Copy link
Member

Summary of the Pull Request

Adds support for the tab.showCloseButton property to themes. This accepts three values:

  • "always" (default): The close button acts like it does today.
  • "hover": The close button is always visible on the active tab. On inactive tabs, the close button only appears on mouse over.
  • "never": The close button is never visible. You can't close the tab with middle-click, but you can still use keyboard shortcuts to close the tab.

References

PR Checklist

Detailed Description of the Pull Request / Additional comments

See the following two properties in WInUI that we're leveraging here.

One is a tabview-level property, the other is a per-tab-item property, hence why this code is a little wacky.

Validation Steps Performed

gifs below

https://stackoverflow.com/questions/64694722/changing-themeresources-dynamically-in-uwp

That post looked SUPER promising. Problem is though, I CANNOT for the life of me
get that to work. Like, I can't get anything to `{Binding Brush, Mode=TwoWay,
Source={StaticResource TerminalBackground}}` to the `TerminalBackground` thing I
made there. I thought that was so clever.

I wanted an easy way to just change the value of a resource and have it update
the Titlebar, but since the Titlebar isn't a child of the TerminalPage, and this
binding thing didn't work, I think I'm at a dead end.
@ghost ghost added Area-Theming Anything related to the theming of elements of the window Issue-Task It's a feature request, but it doesn't really need a major design. Product-Terminal The new Windows Terminal. labels Jun 21, 2022
@zadjii-msft zadjii-msft added this to the Terminal v1.16 milestone Jun 21, 2022
@zadjii-msft
Copy link
Member Author

"tab.showCloseButton": "hover":
tab-showClose-hover-000

"tab.showCloseButton": "never":
tab-showClose-never-000

Base automatically changed from dev/migrie/f/702-link-tab-to-terminal to main July 7, 2022 13:26
…-close-btn

# Conflicts:
#	src/cascadia/LocalTests_SettingsModel/ThemeTests.cpp
#	src/cascadia/TerminalApp/AppLogic.cpp
#	src/cascadia/TerminalApp/AppLogic.h
#	src/cascadia/TerminalApp/TerminalPage.cpp
#	src/cascadia/TerminalApp/TerminalPage.h
#	src/cascadia/TerminalSettingsEditor/GlobalAppearance.cpp
#	src/cascadia/TerminalSettingsEditor/GlobalAppearance.h
#	src/cascadia/TerminalSettingsEditor/GlobalAppearance.idl
#	src/cascadia/TerminalSettingsEditor/GlobalAppearance.xaml
#	src/cascadia/TerminalSettingsModel/CascadiaSettingsSerialization.cpp
#	src/cascadia/TerminalSettingsModel/MTSMSettings.h
#	src/cascadia/TerminalSettingsModel/TerminalSettingsSerializationHelpers.h
#	src/cascadia/TerminalSettingsModel/Theme.cpp
#	src/cascadia/TerminalSettingsModel/Theme.h
#	src/cascadia/TerminalSettingsModel/Theme.idl
#	src/cascadia/WindowsTerminal/AppHost.cpp
@zadjii-msft
Copy link
Member Author

@DHowett fyi the fix we discussed was in dab4501

Comment on lines +2732 to +2734
// This is basically the same as _updateTabCloseButton, but with some
// code moved around to better facilitate updating every tab view item
// at once
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Personally, I'd rather prioritize having the code de-duplicated in case we need to make a bugfix or any code changes down the road. But that's just my 2 cents. Not gonna block over it.

@zadjii-msft zadjii-msft added the AutoMerge Marked for automatic merge by the bot when requirements are met label Aug 1, 2022
@ghost
Copy link

ghost commented Aug 1, 2022

Hello @zadjii-msft!

Because this pull request has the AutoMerge label, I will be glad to assist with helping to merge this pull request once all check-in policies pass.

p.s. you can customize the way I help with merging this pull request, such as holding this pull request until a specific person approves. Simply @mention me (@msftbot) and give me an instruction to get started! Learn more here.

@ghost ghost merged commit 3d40c43 into main Aug 1, 2022
@ghost ghost deleted the dev/migrie/f/3335-tab-close-btn branch August 1, 2022 17:20
@ghost
Copy link

ghost commented Sep 13, 2022

🎉Windows Terminal Preview v1.16.252 has been released which incorporates this pull request.:tada:

Handy links:

This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area-Theming Anything related to the theming of elements of the window AutoMerge Marked for automatic merge by the bot when requirements are met Issue-Task It's a feature request, but it doesn't really need a major design. Product-Terminal The new Windows Terminal.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature Request: Setting to hide/remove close ("x") button from tabs

3 participants