Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add the ability to show the tab bar in fullscreen #18171

Open
wants to merge 10 commits into
base: main
Choose a base branch
from

Conversation

GeekJosh
Copy link
Contributor

@GeekJosh GeekJosh commented Nov 9, 2024

Summary of the Pull Request

This PR allows users to enable the tab bar in fullscreen mode.

References and Relevant Issues

This PR is in response to #11130

Detailed Description of the Pull Request / Additional comments

A new setting; "showTabsFullscreen"; has been added which accepts a boolean value. When true, then the tab bar will remain visible when the terminal app is fullscreen. If the value is false (default), then the tab bar is hidden in fullscreen.

When the tab bar is visible in fullscreen, the min/max/close controls are hidden to maintain the expected behaviour of a fullscreen app.

Validation Steps Performed

All unit tests are passing.

Manually verified that when the "launchMode" setting is "fullscreen" and the "showTabsFullscreen" setting is true, the tab bar is visible on launch.

Manually verified that changing the setting at runtime causes the tab bar to be shown/hidden immediately (if the terminal is currently fullscreen).

Manually verified that the new "showTabsFullscreen" setting is honoured regardless of whether "showTabsInTitlebar" is set to true or false.

PR Checklist

@microsoft-github-policy-service microsoft-github-policy-service bot added Issue-Task It's a feature request, but it doesn't really need a major design. Area-User Interface Issues pertaining to the user interface of the Console or Terminal Product-Terminal The new Windows Terminal. labels Nov 9, 2024

This comment has been minimized.

This comment has been minimized.

Copy link
Member

@carlos-zamora carlos-zamora left a comment

Choose a reason for hiding this comment

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

Looks great! Thanks for doing this!

@GeekJosh
Copy link
Contributor Author

Looks great! Thanks for doing this!

No problem at all, I enjoyed doing it 🙂

Thanks for the review

@@ -337,6 +338,7 @@ void AppHost::Initialize()
_revokers.FullscreenChanged = _windowLogic.FullscreenChanged(winrt::auto_revoke, { this, &AppHost::_FullscreenChanged });
_revokers.FocusModeChanged = _windowLogic.FocusModeChanged(winrt::auto_revoke, { this, &AppHost::_FocusModeChanged });
_revokers.AlwaysOnTopChanged = _windowLogic.AlwaysOnTopChanged(winrt::auto_revoke, { this, &AppHost::_AlwaysOnTopChanged });
_revokers.ShowTabsFullscreenChanged = _windowLogic.ShowTabsFullscreenChanged(winrt::auto_revoke, { this, &AppHost::_ShowTabsFullscreenChanged });
Copy link
Member

Choose a reason for hiding this comment

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

qq: rather than adding another specific event for this, could we just use the existing _requestUpdateSettings handler to update this value when the settings change? I'm not sure the value would ever change outside of a settings change. If that works, you can probably get rid of a lot of plumbing ☺️

Copy link
Contributor Author

Choose a reason for hiding this comment

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

you're absolutely right, there's no need for this additional event - removed 😊

@GeekJosh GeekJosh force-pushed the dev/geekjosh/fullscreen_tab_visibility branch from c3dd1f8 to 2eea60b Compare November 16, 2024 16:14
@GeekJosh
Copy link
Contributor Author

I'm not sure what's causing the Release/x86 build failure here; I can build locally without any issues.

I did a bit of searching and found that there was some issue with the pipeline previously which resulted in the same error: #14581

In that thread, @zadjii-msft found that the GUID used for a dependency project of the TerminalAzBridge project was wrong (PR: #15008) and, sure enough, that's the project which is failing to build for this PR too.

I can't see that anything has changed recently in that project, nor any recent changes to the solution (other than the addition of a new project), so not sure how to proceed from here?

@zadjii-msft
Copy link
Member

Thanks for digging in! Alas, I think you just found one of our various transient build failures. The "circular dependency" thing crops up once every 25 builds or so. You just got unlucky 🤷

I kicked the build though, so hopefully it'll pop up green this time ☺️

@zadjii-msft zadjii-msft assigned zadjii-msft and unassigned GeekJosh Nov 18, 2024
Copy link
Member

@zadjii-msft zadjii-msft left a comment

Choose a reason for hiding this comment

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

Thanks for doing this! This looks much better without the extra event ☺️

@zadjii-msft zadjii-msft removed their assignment Nov 18, 2024
@zadjii-msft
Copy link
Member

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-User Interface Issues pertaining to the user interface of the Console or Terminal 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.

No tabs in fullscreen, focus mode or not
3 participants