[PR #3408] [MERGED] Enable fullscreen mode #25351

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

📋 Pull Request Information

Original PR: https://github.com/microsoft/terminal/pull/3408
Author: @zadjii-msft
Created: 11/1/2019
Status: Merged
Merged: 11/5/2019
Merged by: @zadjii-msft

Base: masterHead: dev/migrie/f/fullscreen-but-on-master


📝 Commits (10+)

  • e72afe0 Cherry-pick commit 8e56bfe
  • 507843f Don't draw the tab strip when maximized
  • 329cb1e Fix the vista window flash for the NCIW
  • 22f80d0 Some code cleanup for review
  • e137a14 A tad bit more notes and cleanup
  • 8692fc9 Update schema, docs
  • e0af065 Merge remote-tracking branch 'origin/master' into dev/migrie/f/fullscreen-but-on-master
  • 62055ab Most of the PR comments
  • 1d85078 I'm not sure this actually works, so I'm committing it to revert it and check
  • 08c6d94 Update some comments that were lost.

📊 Changes

21 files changed (+335 additions, -66 deletions)

View changed files

📝 doc/cascadia/SettingsSchema.md (+2 -1)
📝 doc/cascadia/profiles.schema.json (+3 -2)
📝 src/cascadia/TerminalApp/App.cpp (+0 -28)
📝 src/cascadia/TerminalApp/App.h (+8 -3)
📝 src/cascadia/TerminalApp/App.idl (+3 -2)
📝 src/cascadia/TerminalApp/AppActionHandlers.cpp (+8 -0)
📝 src/cascadia/TerminalApp/AppKeyBindings.cpp (+6 -0)
📝 src/cascadia/TerminalApp/AppKeyBindings.h (+1 -0)
📝 src/cascadia/TerminalApp/AppKeyBindings.idl (+2 -0)
📝 src/cascadia/TerminalApp/AppKeyBindingsSerialization.cpp (+2 -0)
📝 src/cascadia/TerminalApp/TerminalPage.cpp (+23 -3)
📝 src/cascadia/TerminalApp/TerminalPage.h (+6 -0)
📝 src/cascadia/TerminalApp/TerminalPage.idl (+4 -1)
📝 src/cascadia/TerminalApp/defaults.json (+3 -1)
📝 src/cascadia/WindowsTerminal/AppHost.cpp (+7 -0)
📝 src/cascadia/WindowsTerminal/AppHost.h (+2 -0)
📝 src/cascadia/WindowsTerminal/IslandWindow.cpp (+141 -0)
📝 src/cascadia/WindowsTerminal/IslandWindow.h (+13 -0)
📝 src/cascadia/WindowsTerminal/NonClientIslandWindow.cpp (+85 -25)
📝 src/cascadia/WindowsTerminal/NonClientIslandWindow.h (+5 -0)

...and 1 more files

📄 Description

Summary of the Pull Request

Enables the toggleFullscreen action to be able to enter fullscreen mode, bound by default to alt+enter.

The action is bubbled up to the WindowsTerminal (Win32) layer, where the window resizes itself to take the entire size of the monitor.

This largely reuses code from conhost. Conhost already had a fullscreen mode, so I figured I might as well re-use that.

References

Unfortunately there are still very thin borders around the window when the NonClientIslandWindow is fullscreened. I think I know where the problem is. However, that area of code is about to get a massive overhaul with #3064, so I didn't want to necessarily make it worse right now.

A follow up should be filed to add support for "Always show / reveal / never show tabs in fullscreen mode". Currently, the only mode is "never show tabs".

Additionally, some of this code (particularily re:drawing the nonclient area) could be re-used for #2238.

PR Checklist

Validation Steps Performed

  • Manually tested both the NonClientIslandWindow and the IslandWindow.

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/microsoft/terminal/pull/3408 **Author:** [@zadjii-msft](https://github.com/zadjii-msft) **Created:** 11/1/2019 **Status:** ✅ Merged **Merged:** 11/5/2019 **Merged by:** [@zadjii-msft](https://github.com/zadjii-msft) **Base:** `master` ← **Head:** `dev/migrie/f/fullscreen-but-on-master` --- ### 📝 Commits (10+) - [`e72afe0`](https://github.com/microsoft/terminal/commit/e72afe031583968ad5d753c25ebeef0e77877ee6) Cherry-pick commit 8e56bfe - [`507843f`](https://github.com/microsoft/terminal/commit/507843f9ebea2117755425f88df1ce6d6d3b9139) Don't draw the tab strip when maximized - [`329cb1e`](https://github.com/microsoft/terminal/commit/329cb1eabc24a06639eb78d375244906b07303f9) Fix the vista window flash for the NCIW - [`22f80d0`](https://github.com/microsoft/terminal/commit/22f80d0c90456162dbff91c71bcd902c6d4a98c8) Some code cleanup for review - [`e137a14`](https://github.com/microsoft/terminal/commit/e137a14fcea98ae8d3d7d5b3e6f177ee000ed46e) A tad bit more notes and cleanup - [`8692fc9`](https://github.com/microsoft/terminal/commit/8692fc910115946e73f0c16c67574eeb6ffdfdf0) Update schema, docs - [`e0af065`](https://github.com/microsoft/terminal/commit/e0af06566ba4163cf7214a2539be4beedb782708) Merge remote-tracking branch 'origin/master' into dev/migrie/f/fullscreen-but-on-master - [`62055ab`](https://github.com/microsoft/terminal/commit/62055ab4b0e0ed86a1094e0058852d7b874716a1) Most of the PR comments - [`1d85078`](https://github.com/microsoft/terminal/commit/1d8507816effea0b4b6975f10433fd23f0eef808) I'm not sure this actually works, so I'm committing it to revert it and check - [`08c6d94`](https://github.com/microsoft/terminal/commit/08c6d94617680422ce1bea88b9ad480ccd02c786) Update some comments that were lost. ### 📊 Changes **21 files changed** (+335 additions, -66 deletions) <details> <summary>View changed files</summary> 📝 `doc/cascadia/SettingsSchema.md` (+2 -1) 📝 `doc/cascadia/profiles.schema.json` (+3 -2) 📝 `src/cascadia/TerminalApp/App.cpp` (+0 -28) 📝 `src/cascadia/TerminalApp/App.h` (+8 -3) 📝 `src/cascadia/TerminalApp/App.idl` (+3 -2) 📝 `src/cascadia/TerminalApp/AppActionHandlers.cpp` (+8 -0) 📝 `src/cascadia/TerminalApp/AppKeyBindings.cpp` (+6 -0) 📝 `src/cascadia/TerminalApp/AppKeyBindings.h` (+1 -0) 📝 `src/cascadia/TerminalApp/AppKeyBindings.idl` (+2 -0) 📝 `src/cascadia/TerminalApp/AppKeyBindingsSerialization.cpp` (+2 -0) 📝 `src/cascadia/TerminalApp/TerminalPage.cpp` (+23 -3) 📝 `src/cascadia/TerminalApp/TerminalPage.h` (+6 -0) 📝 `src/cascadia/TerminalApp/TerminalPage.idl` (+4 -1) 📝 `src/cascadia/TerminalApp/defaults.json` (+3 -1) 📝 `src/cascadia/WindowsTerminal/AppHost.cpp` (+7 -0) 📝 `src/cascadia/WindowsTerminal/AppHost.h` (+2 -0) 📝 `src/cascadia/WindowsTerminal/IslandWindow.cpp` (+141 -0) 📝 `src/cascadia/WindowsTerminal/IslandWindow.h` (+13 -0) 📝 `src/cascadia/WindowsTerminal/NonClientIslandWindow.cpp` (+85 -25) 📝 `src/cascadia/WindowsTerminal/NonClientIslandWindow.h` (+5 -0) _...and 1 more files_ </details> ### 📄 Description ## Summary of the Pull Request Enables the `toggleFullscreen` action to be able to enter fullscreen mode, bound by default to <kbd>alt+enter</kbd>. The action is bubbled up to the WindowsTerminal (Win32) layer, where the window resizes itself to take the entire size of the monitor. This largely reuses code from conhost. Conhost already had a fullscreen mode, so I figured I might as well re-use that. ## References Unfortunately there are still very thin borders around the window when the NonClientIslandWindow is fullscreened. I think I know where the problem is. However, that area of code is about to get a massive overhaul with #3064, so I didn't want to necessarily make it worse right now. A follow up should be filed to add support for "Always show / reveal / never show tabs in fullscreen mode". Currently, the only mode is "never show tabs". Additionally, some of this code (particularily re:drawing the nonclient area) could be re-used for #2238. ## PR Checklist * [x] Closes #531, #3411 * [x] I work here * [n/a] Tests added/passed 😭 * [x] Requires documentation to be updated ## Validation Steps Performed * Manually tested both the NonClientIslandWindow and the IslandWindow. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
claunia added the pull-request label 2026-01-31 09:08:57 +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#25351