Skip to content
This repository has been archived by the owner on Mar 3, 2022. It is now read-only.

Update Component Parts: #1

Merged
merged 123 commits into from
Mar 3, 2022
Merged

Update Component Parts: #1

merged 123 commits into from
Mar 3, 2022

Commits on Jan 18, 2022

  1. Prevent potential null pointer crash in export buffer action (#12180)

    ## Summary of the Pull Request
    Prevents a potential null pointer crash in the export buffer action.
    
    ## PR Checklist
    * [x] Closes #12170
    * [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA
    * [ ] Tests added/passed
    * [ ] Documentation updated. If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: #xxx
    * [ ] Schema updated.
    * [ ] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx
    
    ## Validation Steps Performed
    Manually tested.
    ianjoneill committed Jan 18, 2022
    Configuration menu
    Copy the full SHA
    084bf89 View commit details
    Browse the repository at this point in the history
  2. Disable being able to set the automatic adjustment of indistinguishab…

    …le text (#12160)
    
    ## Summary of the Pull Request
    Disables the automatic adjustment of indistinguishable text (added in #11095) because of the concerns brought up in #11917. Also, the setting is hidden in the SUI for as long as this feature remains disabled.
    
    ## PR Checklist
    * [ ] Closes #xxx
    * [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA
    * [ ] Tests added/passed
    * [ ] Documentation updated. If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: #xxx
    * [ ] Schema updated.
    * [x] I work here
    PankajBhojwani committed Jan 18, 2022
    Configuration menu
    Copy the full SHA
    f605adc View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    4e46c85 View commit details
    Browse the repository at this point in the history

Commits on Jan 20, 2022

  1. Merged PR 6815087: [Git2Git] !6814613: conhost FT: skip a test that f…

    …ails on OneCore
    
    [Git2Git] Merged PR 6814613: conhost FT: skip a test that fails on OneCore
    
    Fixes MSFT-33720056
    
    Retrieved from https://microsoft.visualstudio.com os.2020 OS official/rs_wdx_dxp_windev 6410311eee21e9ce147464af89d35f3569d4d2b9
    DHowett committed Jan 20, 2022
    Configuration menu
    Copy the full SHA
    494b11c View commit details
    Browse the repository at this point in the history

Commits on Jan 21, 2022

  1. Setup OneFuzz for CI (#10431)

    ## Summary of the Pull Request
    This PR sets up a OneFuzz pipeline on Azure DevOps for our repo.
    
    ## Detailed Description of the Pull Request / Additional comments
    - fuzz.yml: defines the stages and pipeline for ADO
    - build-console-fuzzing: builds the solution in the Fuzzing configuration
    - build-console-steps: omits a few tasks that are unnecessary for this build configuration 
    - sln and vcxproj changes: the solution wasn't building in CI. This makes sure that's fixed.
    - fuzzing.md: a short guide on how to get OneFuzz set up and add a new fuzzer
    
    ## References
    #7638
    carlos-zamora committed Jan 21, 2022
    Configuration menu
    Copy the full SHA
    68ab807 View commit details
    Browse the repository at this point in the history
  2. atlas: apply colors/flags per column instead of just the first one (#…

    …12189)
    
    The atlas engine currently applies colors and flags (underline,
    overline, ...) based on the first column in a glyph; this means that
    every member of a ligature is drawn in the same color with the same
    underline style.
    
    This commit makes us look up cell color and flags based on the actual
    buffer column it represents, so that ligatures can be printed in
    multiple colors and with different underline styles.
    DHowett committed Jan 21, 2022
    Configuration menu
    Copy the full SHA
    8793e27 View commit details
    Browse the repository at this point in the history

Commits on Jan 24, 2022

  1. Make sure titles always sanitized before passing over conpty (#12211)

    When title updates are forwarded from the host to the client terminal,
    they're passed over conpty in an `OSC 0` sequence. If there are any
    control characters embedded in that title text it's essential they be
    filtered out, otherwise they are likely to be misinterpreted by the VT
    parser on the other side. This PR fixes a case where that sanitization
    step was missed for titles initialized at startup.
    
    Originally the sanitization step was handled in `DoSrvSetConsoleTitleW`,
    which catches title changes made via VT escape sequences, or through the
    console API, but missed the title initialization at startup. I've now
    moved that sanitization code into the `CONSOLE_INFORMATION::SetTitle`
    method, which should cover all cases.
    
    This sanitization is only meant to occur when in "pty mode", though,
    which we were originally establishing with an `IsInVtIoMode` call.
    However, `IsInVtIoMode` does not return the correct result when the
    title is set at startup, since the VT I/O thread is not initialized at
    that point. So I've instead had to change that to an `InConptyMode`
    call, which determines the conpty state from the launch args.
    
    ## Validation Steps Performed
    
    I've manually confirmed the test case described in issue #12206 is now
    working correctly.
    
    However, the change to using `InConptyMode` caused some of the unit
    tests to fail, because there isn't a real conpty connection when
    testing. Fortunately there are some `EnableConptyModeForTests` methods
    used by the unit tests to fake the appearance of a conpty connection,
    and I just needed to add some additional state in one of those methods
    to trigger the correct `InConptyMode` response.
    
    Closes #12206
    j4james committed Jan 24, 2022
    Configuration menu
    Copy the full SHA
    3804f26 View commit details
    Browse the repository at this point in the history
  2. ci: move helix queueing to a separate stage as well (#12167)

    This pull request moves the Helix queuing to a separate stage outside of the build stage.
    DHowett committed Jan 24, 2022
    Configuration menu
    Copy the full SHA
    b844008 View commit details
    Browse the repository at this point in the history
  3. Fix gridline drawings for DxEngine (#12224)

    With the introduction of a common `RenderSettings` class in 62c95b5,
    `PaintBufferGridLines` was now uniformly called with a proper alpha-less
    `COLORREF` argument. This commit crudely fixes the issue by forcing
    the color to be fully opaque in the `DxEngine` class.
    
    ## PR Checklist
    * [x] Closes #12223
    * [x] I work here
    * [x] Tests added/passed
    
    ## Validation Steps Performed
    
    * Launch pwsh.exe
    * Hyperlinks get underlines on hover ✅
    lhecker committed Jan 24, 2022
    Configuration menu
    Copy the full SHA
    e3aa9ff View commit details
    Browse the repository at this point in the history
  4. AtlasEngine: Make shader hot-reloads possible in Windows Terminal (#1…

    …2227)
    
    This minor change makes it possible to hot-reload the AtlasEngine shaders under
    Windows Terminal. Launching an UWP application from Visual Studio doesn't
    necessarily result in a working directory inside the project folder,
    which makes relative file paths impractical. While the `__FILE__` macro is
    compiler dependent it works under our build setup with MSVC at least.
    
    ## Validation Steps Performed
    
    * Shader hot-reloading works under Windows Terminal ✅
    lhecker committed Jan 24, 2022
    Configuration menu
    Copy the full SHA
    27c4a84 View commit details
    Browse the repository at this point in the history
  5. Fix opacity restore for command palette previews (#12229)

    This commit correctly restores the previous opacity when the command palette
    preview is cancelled. It includes an additional change in order to make the
    `AdjustOpacity` setter consistent and symmetric with the `Opacity` getter.
    
    ## PR Checklist
    * [x] Closes #12228
    * [x] I work here
    * [x] Tests added/passed
    
    ## Validation Steps Performed
    
    * Open Windows Terminal command palette
    * Choose "Set background opacity..."
    * Cycle through the items without selecting one
    * Press Escape
    * Previous opacity is restored ✅
    lhecker committed Jan 24, 2022
    Configuration menu
    Copy the full SHA
    5258fea View commit details
    Browse the repository at this point in the history
  6. Misc. elevation crash fixes (#12205)

    This is a collection of fixes:
    * dd213a5: This was a crash I discovered while investigating. Probably not the root cause crash, but a crash nonetheless.
    * ba49121...0b18ae4: A collection of fixes to _not_ create the window when we're about to handoff each of the new tabs, panes, to an elevated window. That should prevent us from starting up XAML at all, which should take care of #12169. Additionally, it'll prevent us from restoring the unelevated windows, which should resolve #12190
    * The remainder of the commits where fixes for other weird edge cases as a part of this. Notably:
      * ff72599: Autopromote the first `split-pane` to a new tab, in the case that it's preceded with only `new-tab` actions that opened elevated windows. 
    
    #### checklist
    
    * [x] I work here
    * [x] Docs are fine
    * [x] Closes #12190
    * [x] Closes #12169
    zadjii-msft committed Jan 24, 2022
    Configuration menu
    Copy the full SHA
    43a275c View commit details
    Browse the repository at this point in the history
  7. Fix unbalanced unlock in PtySignalInputThread::_Shutdown (#12181)

    The only way to notice that LeaveCriticalSection() was called more
    often than EnterCriticalSection() is by calling EnterCriticalSection()
    again in the future, which will then deadlock.
    Since this bug occurs on exit it wasn't noticeable with the old console lock.
    With the new, stricter ticket lock this bug causes a fail-fast exit.
    
    ## PR Checklist
    * [x] Closes #12168
    * [x] I work here
    * [x] Tests added/passed
    
    ## Validation Steps Performed
    * Launch and then exit Windows Terminal
    * OpenConsole cleanly exits ✅
    lhecker committed Jan 24, 2022
    Configuration menu
    Copy the full SHA
    3bd3a4f View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    038917d View commit details
    Browse the repository at this point in the history

Commits on Jan 25, 2022

  1. PR 6616045: Hand off to Windows Terminal Stable by default (!)

    This commit also introduces a check that we are in an interactive
    session before we perform handoff, so as to not break service accounts.
    
    It also adds some tracing.
    leonMSFT authored and DHowett committed Jan 25, 2022
    Configuration menu
    Copy the full SHA
    33c2cd4 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    9e1acd7 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    886592a View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    10824cc View commit details
    Browse the repository at this point in the history
  5. Uh oh someone broke main on an FI

      Fixes FI bugs introduced in 33c2cd4
    zadjii-msft committed Jan 25, 2022
    Configuration menu
    Copy the full SHA
    d4ebcc2 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    a2e9328 View commit details
    Browse the repository at this point in the history
  7. Fix a merge conflict that broke the build (#12245)

    Less "merge conflict" and more "something that got missed in a merge".
    The offending commits are
    *  68ab807
    *  b3fab51
    
    The Fuzzer build doesn't run on PR, so it didn't notice this couldn't build.
    
    @carlos-zamora as an FYI
    zadjii-msft committed Jan 25, 2022
    Configuration menu
    Copy the full SHA
    bfa3964 View commit details
    Browse the repository at this point in the history
  8. Add support for hyperlinks to AtlasEngine (#12225)

    `Renderer` owns the information of the hovered interval in `_hoveredInterval`
    and provides no access to this information. We can only infer it from calls
    to `PaintBufferGridLines`, if we're given the request to draw an underline
    despite the previous call to `UpdateDrawingBrushes` not specifying it.
    While it'd be possible to fix this and pass the underline flag to
    `UpdateDrawingBrushes`, I personally consider this aspect of `Renderer` to be
    a "leaky abstraction" as it's inherently incompatible with any engine not
    working like `DxEngine`, such as the `AtlasEngine`. It's likely more
    worthwhile to fundamentally change the `Renderer` architecture in the future.
    
    ## PR Checklist
    * [x] Closes #11871
    * [x] I work here
    * [x] Tests added/passed
    
    ## Validation Steps Performed
    
    * Launch pwsh.exe
    * Hyperlinks are underlined when hovered ✅
    * Launch WSL / bash
    * Run `printf '\e]8;;http://example.com\e\\This is a link\e]8;;\e\\\n'`
    * Hyperlink is underlined when hovered ✅
    lhecker committed Jan 25, 2022
    Configuration menu
    Copy the full SHA
    57b93d2 View commit details
    Browse the repository at this point in the history
  9. AtlasEngine: Redraw immediately on opacity changes (#12226)

    Since `AtlasEngine` prefers drawing without alpha for performance reasons,
    calls to `EnableTransparentBackground` require a draw cycle.
    This PR makes `Renderer::_NotifyPaintFrame` public and calls it.
    
    Related to #9999.
    
    ## PR Checklist
    * [x] I work here
    * [x] Tests added/passed
    
    ## Validation Steps Performed
    
    * Open Windows Terminal command palette
    * Choose "Set background opacity..."
    * Cycling through the items without selecting one
      changes background opacity immediately ✅
    lhecker committed Jan 25, 2022
    Configuration menu
    Copy the full SHA
    f210784 View commit details
    Browse the repository at this point in the history
  10. Pin the NETCore.App.Host version to appease nuget (#12248)

    This gets rid of warnings like
    
    ```
    NU1102: Unable to find package Microsoft.NETCore.App.Host.win-x64 with version (= 3.1.21)
    - Found 1 version(s) in TerminalDependencies [ Nearest version: 3.1.18 ]
    ```
    
    Technically, there's a `NETCore.App.Host.3.1.21` that's out now. We _could_
    migrate to that, but then we'd have to make sure to manually re-upload that
    nuget package to our nuget feed, and then we'd still get this warning the
    next time that package is updated.
    
    Theoretically, there's a 6.x version too, but considering this is a debugging
    tool, we don't care all that much.
    
    * [x] I work here
    * [x] Discussed this with Dustin
    * [x] Gets rid of a SUPER TRIVIAL warning.
    zadjii-msft committed Jan 25, 2022
    Configuration menu
    Copy the full SHA
    59760b6 View commit details
    Browse the repository at this point in the history
  11. Send an updated cursor position at the end of writing a run (#12210)

    I can find the commit where this regressed tomorrow if needed. In #10685 we stopped emitting these notifications while we were deferring cursor drawing. We however forgot to send the notification at the end of the defer.
    
    This likely has a small perf impact. We however do need these cursor position events for IMEs to be able to track the cursor position (and low key for #10821)
    
    * [x] regressed in #10685
    * [x] Closes #11170
    * [x] I work here
    * [x] Tests added
    zadjii-msft committed Jan 25, 2022
    Configuration menu
    Copy the full SHA
    01fd714 View commit details
    Browse the repository at this point in the history
  12. Merged PR 6881653: [Git2Git] Merged PR 6881093: BUILD FIX: Reintroduc…

    …e BOM to conhost manifests
    
    [Git2Git] Merged PR 6881093: BUILD FIX: Reintroduce BOM to conhost manifests
    
    Related work items: MSFT-37882151
    
    Retrieved from https://microsoft.visualstudio.com os.2020 OS official/rs_wdx_dxp_windev b6f388b08b0b431ffc5663fe27eef260688febd6
    DHowett committed Jan 25, 2022
    Configuration menu
    Copy the full SHA
    c27e9a5 View commit details
    Browse the repository at this point in the history
  13. Merged PR 6882227: [Git2Git] Merged PR 6881763: Change to hardcoded s…

    …ystem GUIDs to appease manifest validation
    
    Manifest validation won't accept migration/initialization of HKCU-based registry keys anymore. The enforcement scripts says that they should be defined in code instead. So here it is: defined in code insteead.
    
    Retrieved from https://microsoft.visualstudio.com os.2020 OS official/rs_wdx_dxp_windev 67c720b628de4acefbc381891b7e7d29d387038e
    
    Related work items: MSFT-37867666
    DHowett committed Jan 25, 2022
    Configuration menu
    Copy the full SHA
    92727b5 View commit details
    Browse the repository at this point in the history

Commits on Jan 26, 2022

  1. Remove the Tray Icon from velocity (#12246)

    This will turn the feature on always from this point on. That means 1.13 Stble
    would be the first Stable release to have this feature (unless we cherry-pick
    this to 1.12 stable, which we may)
    
    * [x] Closes #12220
    * [x] I work here
    zadjii-msft committed Jan 26, 2022
    Configuration menu
    Copy the full SHA
    dcc80a8 View commit details
    Browse the repository at this point in the history
  2. Fix Opacity in Windows 10, again (#12255)

    More fallout from the settings refactor. Probably because testing on a Windows
    10 device is hard, because you actually need a physical machine to get acrylic
    to behave correctly.
    
    Basically, the code is simpler now, but we missed the windows 10 only edge case
    where acrylic can get turned on, but we forget to enable the acrylic brush, so
    it just stays off.
    
    Refer to #11619 where this regressed, and #11643, #12229, because this is just a
    hard problem apparently
    
    * [x] Closes #11743. Technically OP is complaining about behavior that's
      by-design, but it made me realize this regressed in 1.12.
    * [ ] No tests on this part of the `TermControl` unfortunately.
    * [x] Hauled out my old Win10 laptop to verify that opacity works right:
      - [x] A fresh profile isn't created with any opacity
      - [x] Mouse wheeling turns on acrylic
      - [x] Using `opacity` only in the settings still stealthily enables acrylic
    zadjii-msft committed Jan 26, 2022
    Configuration menu
    Copy the full SHA
    15a0475 View commit details
    Browse the repository at this point in the history
  3. Update PGO helpers to mitigate Y2K22 bug (#12262)

    The PGO helpers NuGet had the Y2K22 bug. This receives and integrates the updated package in our project to restore NuGet functionality.
    
    ## PR Checklist
    * [x] Closes #12261
    * [x] I work here
    * [x] If it builds it sits.
    
    ## Validation Steps Performed
    * [x] Build new PGO instrument data with this pipeline update: https://dev.azure.com/microsoft/Dart/_build/results?buildId=44304850&view=results
    miniksa committed Jan 26, 2022
    Configuration menu
    Copy the full SHA
    fe52368 View commit details
    Browse the repository at this point in the history
  4. Expose Defterm info to ComboBoxItem properly (#12259)

    ## Summary of the Pull Request
    Makes `Model::DefaultTerminal` an `IStringable`, which presents it as a string, when possible. This enables text search for defterm's setting. This also enables screen readers to identify the combo box items by their text content (app name, author, and version) as opposed to being treated as an item containing more text. As a part of that, I cleaned up the UIA tree to treat the item's name as "\<name\>, \<author\>, \<version\>". This is consistent with how the Settings App presents installed apps in Apps > Installed apps.
    
    #11251 will be resolved upon verification by the accessibility team.
    
    ## Validation Steps Performed
    Verified using Narrator and Accessibility Insights.
    carlos-zamora committed Jan 26, 2022
    Configuration menu
    Copy the full SHA
    d89c241 View commit details
    Browse the repository at this point in the history
  5. Add a keyboard shortcut handler to the TabRowControl (#12260)

    This makes the scenario mentioned in #8480 work. It's maybe not as holistic a solution as we'd like, but it definitely works.
    
    Tested both with Narrator, and using the TabView scroll handles to get tab focus into the tab row manually
    
    * [x] Closing the _active_ tab with <kbd>Ctrl+Shift+w</kbd> works (not the `TabViewItem` that has focus, but that's how Edgium works so that seems fine)
    * [x] Opening a tab with <kbd>Ctrl+Shift+t</kbd> works
    * [x] Opening the cmdpal with <kbd>Ctrl+Shift+p</kbd> works
    * [x] Will take care of #8480 once we get the a11y team to validate
    * [x] I work here
    
    
    #### Notes:
    
    None of
    
    ```xaml
    PreviewKeyDown="_KeyDownHandler"
    KeyDown="_KeyDownHandler"
    KeyUp="_KeyDownHandler"
    ```
    
    On the TerminalPage directly seem to fire when the focus is in the `TabViewItem` or the New Tab flyout. But they fire just fine when focus is in the `TermControl`. Interesting, because you'd think that the `TermControl` would have already handled the key...
    zadjii-msft committed Jan 26, 2022
    Configuration menu
    Copy the full SHA
    6f69487 View commit details
    Browse the repository at this point in the history
  6. [Command Palette] Announce if suggestions were found to screen readers (

    #12266)
    
    ## Summary of the Pull Request
    Expands on #9582. If the command palette finds results, the screen reader says "Suggestions available".
    
    Makes the scenario mentioned in #7907 work.
    
    This is sufficient for various reasons:
    1. According to the bug report, saying that suggestions are available is sufficient
    > Screen reader should provide the results info on searching commands like 10 results found or suggestions available when there are any search results (Source: #7907)
    
    2. This is common practice. Settings app and XAML Controls Gallery do this for their search box.
    
    Also, the user should be able to know how many results were found by tabbing/selecting a result item. When this is done, the screen reader will use `SizeOfSet` and `PositionInSet` to announce how many results were found and which one we're currently on.
    
    ## Validation Steps Performed
    Verified this behavior using Narrator.
    Verified it matches the behavior of the Settings app and the XAML Controls Gallery.
    carlos-zamora committed Jan 26, 2022
    Configuration menu
    Copy the full SHA
    1e47d7a View commit details
    Browse the repository at this point in the history

Commits on Jan 27, 2022

  1. Configuration menu
    Copy the full SHA
    a13b207 View commit details
    Browse the repository at this point in the history
  2. Rename the "Bold" SGR attribute as "Intense" (#12270)

    When we gave users the ability to configure how the `SGR 1` attribute
    should be rendered, we described those options as "intense is bright"
    and "intense is bold". Internally, though, we still referred to the `SGR 1`
    attribute as bold. This PR renames all occurrences of "Bold" (when
    referring to the `SGR 1` attribute) as "Intense", so the terminology is
    more consistent now.
    
    PR #10969 is where we decided on the wording to describe the `SGR 1`
    attribute.
    
    Specific changes include:
    * `TextAttribute::IsBold` method renamed to `IsIntense`
    * `TextAttribute::SetBold` method renamed to `SetIntense`
    * `VtEngine::_SetBold` method renamed to `_SetIntense`
    * `ExtendedAttributes::Bold` enum renamed to `Intense`
    * `GraphicsOptions::BoldBright` enum renamed to `Intense`
    * `GraphicsOptions::NotBoldOrFaint` enum renamed to `NotIntenseOrFaint`
    * `SgrSaveRestoreStackOptions::Boldness` enum renamed to `Intense`
    
    ## Validation Steps Performed
    
    I've checked that the code still compiles and the unit tests still run
    successfully.
    
    Closes #12252
    j4james committed Jan 27, 2022
    Configuration menu
    Copy the full SHA
    bcc38d0 View commit details
    Browse the repository at this point in the history
  3. AtlasEngine: Implement ClearType blending (#12242)

    This commit extracts DirectWrite related shader code into dwrite.hlsl
    and adds support for ClearType blending.
    
    Additionally the following changes are piggybacked into this commit:
    * Some incorrect code around fallback glyph sizing was removed as
      this is already accomplished by `CreateTextLayout` internally
    * Hot-reload failed to work with dwrite.hlsl as the `pFileName`
      parameter was missing
    * Legibility of the dotted underline was improved by increasing
      the line gap from 1:1 to 3:1
    
    Part of #9999.
    
    ## PR Checklist
    * [x] I work here
    * [x] Tests added/passed
    
    ## Validation Steps Performed
    * Types are clear ✅
    lhecker committed Jan 27, 2022
    Configuration menu
    Copy the full SHA
    4ccfe0b View commit details
    Browse the repository at this point in the history
  4. Fix defterm in wake of auto-elevation (#12272)

    There are a couple places where we now bail immediately on startup, if we think the window is going to get created without any tabs. We do that to prevent a blank window from flashing on the screen when launching auto-elevate profiles. Unfortunately, those broke defterm in a particularly hard to debug way. In the defterm invocation, there actually aren't any tabs when the app completes initialization. We use the initialization to actually accept the defterm handoff. So what would happen is that the window would immediately close itself gracefully, never accepting the handoff.
    
    In my defense, #8514, the original auto-elevated PR, predates defterm merging (906edf7) by a few months, so I totally forgot to test this when rolling it into the subsequent iterations of that PR.
    
    * Related to: 
      * #7489
      * #12137 
      * #12205 
    * [x] Closes #12267 
    * [x] I work here
    * [ ] No tests on this code unfortunately
    * [x] Tested manually
    
    Includes a semi-related code fix to #10922 to make that quieter. That is perpetually noisy, and when trying to debug defterm, you've only got about 30s to do that before it bails, so the `sxe eh` breaks in there are quite annoying.
    zadjii-msft committed Jan 27, 2022
    Configuration menu
    Copy the full SHA
    48d79c7 View commit details
    Browse the repository at this point in the history
  5. Rename "Windows Terminal" -> "Terminal" (#12264)

    This should be most of the surfaces that we really care about for displaying "Windows Terminal". There's a pile of other references in code, but I couldn't find any other resources that mention it. 
    
    I left a lot of the references to Windows Terminal throughout. Seemed like it was fine to keep calling it that in most places, just these localized strings that are going to be displayed in the Shell that should be changed.
    
    Rough compare:
    ![image](https://user-images.githubusercontent.com/18356694/151248506-edf9a6ab-d93f-438f-8755-cdf6ae643736.png)
    
    
    The strings were also moved to the Context Menu resources file, because that's localized into more languages. 
    
    @DHowett we may want to spin a full build to make sure this works and I didn't miss anything
    
    * [x] Closes #12091
    zadjii-msft committed Jan 27, 2022
    Configuration menu
    Copy the full SHA
    a66a1c0 View commit details
    Browse the repository at this point in the history
  6. Add support for ctrl+click on the dropdown to launch elevated (#12209)

    Just like the shift+click and the alt click shortcuts, now Ctrl+Click will launch a new window with that profile, elevated.
    
    I also found that the GenerateName wasn't updated for the elevate arg, so added that. I considered adding the following to the defaults, but decided against it. It added 10 more entries to the command palette that were only separated by the `elevate: true` param, so that didn't feel valuable. Those are posted below for posterity.
    
    * [x] closes https://github.com/microsoft/terminal/projects/5#card-50759221
    * [x] Tested manually
    
    Includes a semi-related dead code removal for the `elevated` param for `_OpenNewWindow`, which didn't end up being used, and wouldn't work as intended anyways.
    zadjii-msft committed Jan 27, 2022
    Configuration menu
    Copy the full SHA
    e520779 View commit details
    Browse the repository at this point in the history
  7. Add Elevate flag to the SUI (#12257)

    Does what it says on the box
    
    ![image](https://user-images.githubusercontent.com/18356694/151168418-68dd9737-ceee-4dbc-8ab4-2b07f5d3fddb.png)
    
    * [x] I work here
    * [x] Discussed in OneNote
    zadjii-msft committed Jan 27, 2022
    Configuration menu
    Copy the full SHA
    f854988 View commit details
    Browse the repository at this point in the history
  8. Don't open a hole in the terminal window when pasting (#12208)

    Turns out, this bug only repros in Controls version 2. I'm not sure why, but it didn't repro only on main. So this fix does nothing until #11720 merges.
    
    This PR prevents us from setting properties on the paste warning dialog unless we actually need to paste. 5f9c551 proves that settings these properties is what would cause the bug in the first place. 
    
    I went a step further and cleaned this up a bit. This was always a little weird, having to get the `BracketedPasteEnabled` for the active control on the UI thread before we actually display the warning. In the post-#5000 future where going back to the control like this would be a x-proc hop, I figured I should just skip that entirely and plumb the `BracketedPaste` state out in the initial request. 
    
    * [x] Closes #12202
    * [x] I work here
    * [x] No tests, but there's not a great place for a test like this
    * [x] Doesn't affect docs
    
    See also: #12241 which would introduce #12202 on its own.
    zadjii-msft committed Jan 27, 2022
    Configuration menu
    Copy the full SHA
    95770ed View commit details
    Browse the repository at this point in the history

Commits on Jan 28, 2022

  1. Fix broken reset button on some profile settings (#12275)

    ## Summary of the Pull Request
    This fixes a bug where several settings would not show the reset button. The root cause of this issue is two fold:
    1. Hooking up `CurrentXXX`
       - `GETSET_BINDABLE_ENUM_SETTING` was hooked up to the **settings** model profile object instead of the **view** model profile object. Since the settings model has no `PropertyChanged` system, any changes were directly being applied to the setting, but not notifying the view model (and thus, the view, by extension) to update themselves.
       - This fix required me to slightly modify the macro. Rather than using two parameters (object and function name), I used one parameter (path to getter/setter). 
    2. Responding to the `PropertyChanged` notifications
       - Now that we're actually dispatching the `PropertyChanged` notifications, we need to actually respond to them. This behavior was defined in `Profiles::OnNavigatedTo()` in the `PropertyChanged()` handler. Funny enough, that code was still there, it just didn't do anything because it was trying to notify that `Profiles::CurrentXXX` changed. This is invalid because `CurrentXXX` got moved to `ProfileViewModel`.
       - The fix here was pretty easy. Just move the property changed handler to `ProfileViewModel`'s `PropertyChanged` handler that is defined in the ctor.
    
    ## References
    Bug introduced in #11877
    
    ## Validation Steps Performed
    ✅ Profile termination behavior
    ✅ Bell notification style
    ✅ Text antialiasing
    ✅ Scrollbar visibility
    carlos-zamora committed Jan 28, 2022
    Configuration menu
    Copy the full SHA
    2db4cba View commit details
    Browse the repository at this point in the history
  2. Update our SUI to follow win 11 guidelines (#11720)

    ## Summary of the Pull Request
    Updates our SUI to follow the windows 11 style guidelines. Includes updating our setting containers to follow the 'expander' style.
    
    ## PR Checklist
    * [x] Closes #10631
    * [x] Closes #9978
    * [x] Closes #9595
    * [x] Closes #11231
    * [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA
    * [ ] Tests added/passed
    * [ ] Documentation updated. If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: #xxx
    * [ ] Schema updated.
    * [x] I work here
    PankajBhojwani committed Jan 28, 2022
    Configuration menu
    Copy the full SHA
    35504f4 View commit details
    Browse the repository at this point in the history
  3. AtlasEngine: Fix various ClearType rendering issues (#12278)

    This commit fixes the following issues when ClearType rendering is enabled:
    * Colored glyphs are now drawn using grayscale AA, similar to all current
      browsers. This ensures proper gamma correctness during blending in our
      shader, while generally making no discernable difference for legibility.
    * Our ClearType shader only emits fully opaque colors, just like the official
      ClearType implementation. Due to this we need to force grayscale AA if the
      user specifies both ClearType and a background image, as the image would
      otherwise not be visible.
    
    ## PR Checklist
    * [x] I work here
    * [x] Tests added/passed
    
    ## Validation Steps Performed
    * Grayscale AA when drawing emojis ✅
    * Grayscale AA when using a background image ✅
    lhecker committed Jan 28, 2022
    Configuration menu
    Copy the full SHA
    3499e5c View commit details
    Browse the repository at this point in the history
  4. Add a BreadcrumbBar to the SUI (#12144)

    ## Summary of the Pull Request
    **Note: This PR targets #11720**
    
    Replaces our old pivot-style settings UI with a breadcrumb bar style, as per the windows 11 style guidelines. This required splitting `Profiles.xaml` into 3 separate files, `Profiles_Base.xaml` for general settings, `Profiles_Appearance.xaml` for appearance settings, `Profiles_Advanced.xaml` for advanced settings
    
    The header in the navigation view is now a [BreadcrumbBar](https://docs.microsoft.com/en-us/windows/apps/design/controls/breadcrumbbar), which can be used to navigate back to `Profiles_Base` after moving into the advanced or appearance page (see GIF below)
    
    <!-- Please review the items on the PR checklist before submitting-->
    ## PR Checklist
    * [ ] Closes #xxx
    * [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA
    * [ ] Tests added/passed
    * [ ] Documentation updated. If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: #xxx
    * [ ] Schema updated.
    * [x] I work here
    
    ## Validation Steps Performed
    ![breadcrumb](https://user-images.githubusercontent.com/26824113/150410517-2232811e-4f5b-4732-9a0d-569cc94093b3.gif)
    PankajBhojwani committed Jan 28, 2022
    Configuration menu
    Copy the full SHA
    21d30b1 View commit details
    Browse the repository at this point in the history
  5. Change where the NotificationIcon looks up our resources (#12282)

    I didn't have the tray icon enabled before I suppose, so this never got hit? Anyhow, we need to change where we look for the AppName. Otherwise we crash on launch 😨
    
    * [x] fixes `main`
    * [x] I work here
    * regressed in #12264
    * [x] Tested by: actually running the Terminal with this, it launched
    zadjii-msft committed Jan 28, 2022
    Configuration menu
    Copy the full SHA
    7150fd8 View commit details
    Browse the repository at this point in the history
  6. Simplify the IStateMachineEngine interface (#12277)

    There were a number of methods in the `IStateMachineEngine` interface
    which controlled how the `StateMachine` interpreted escape sequences.
    But essentially what it came down to was a bunch of a properties that
    were always true for the `InputStateMachineEngine`, and always false for
    the `OutputStateMachine` engine. To simplify the implementation, and
    make things a little more efficient, I've now replaced all of those
    virtual calls with a single boolean field in the `StateMachine` that is
    initialised in the constructor. 
    
    I started by adding an `isEngineForInput` parameter to the constructor
    to indicate the the type of engine being passed in. But to keep things
    simple for callers, and I also then added a constructor without that
    parameter, which could derive the value automatically based on the type
    of the engine pointer.
    
    Then in the `StateMachine` implementation, anywhere we were previously
    calling `ParseControlSequenceAfterSs3`, `FlushAtEndOfString`,
    `DispatchControlCharsFromEscape`, or `DispatchIntermediatesFromEscape`,
    we now just reference `_isEngineForInput`. But I've also copied across
    some of the original comments from those methods, to make it clear at
    the point of usage why we have a difference in behavior for input and
    output.
    
    To make sure the unit tests would catch any problems, I hardcoded the
    `_isEngineForInput` field to `false`, and confirmed that it broke a
    bunch of input engine tests. Then I hardcoded it to `true`, and
    confirmed that it broke a bunch of state machine and output engine
    tests. With the `_isEngineForInput` set correctly, everything passed.
    
    I also manually tested the various output edge cases that would be
    effected by this code - C0 controls within an escape sequence, time
    delays in the middle of an escape sequence, `SCS` character set
    selection which requires intermediates following an escape, and a G3
    single shift select which depends on `SS3`.
    
    Closes #12254
    j4james committed Jan 28, 2022
    Configuration menu
    Copy the full SHA
    d79cf25 View commit details
    Browse the repository at this point in the history
  7. Move to the 21H1 Helix pool (#12285)

    The 19H1 pool is being decommissioned.
    DHowett committed Jan 28, 2022
    Configuration menu
    Copy the full SHA
    eb75597 View commit details
    Browse the repository at this point in the history

Commits on Jan 31, 2022

  1. Fix SizeOfSet and PositionInSet for 'Open JSON File' nav item (#12286)

    ## Summary of the Pull Request
    According to microsoft/microsoft-ui-xaml#1971, `PaneFooter` does not set the `SizeOfSet` or `PositionInSet` properties. However, `FooterMenuItems` does and works for our scenario. So we just replaced `PaneFooter` with `FooterMenuItems`.
    
    Will handle #11154 upon verification from the accessibility team.
    
    ## Validation Steps Performed
    ✅ Verified using Accessibility Insights
    ✅ "Open Json File" button can still be invoked and keyboard navigated to as expected
    carlos-zamora committed Jan 31, 2022
    Configuration menu
    Copy the full SHA
    2861b41 View commit details
    Browse the repository at this point in the history
  2. Fix a number of small issues with the SUI (#12287)

    ## Summary of the Pull Request
    Fix various things from the recent SUI changes
    
    - The Appearance/Advanced toggle buttons now have a max width
    - We don't need `Profiles.cpp` anymore
    - The `Elevate` setting is now back in the SUI
    - There is no longer an alignment difference between non-expander settings and expander settings
    - Expander settings no longer require hitting `Tab` twice to get to them
    
    <!-- Please review the items on the PR checklist before submitting-->
    ## PR Checklist
    * [ ] Closes #xxx
    * [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA
    * [ ] Tests added/passed
    * [ ] Documentation updated. If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: #xxx
    * [ ] Schema updated.
    * [x] I work here
    PankajBhojwani committed Jan 31, 2022
    Configuration menu
    Copy the full SHA
    a1ce81b View commit details
    Browse the repository at this point in the history
  3. Two belling fixes (#12281)

    Sorry for combining two fixes in one PR. I can separate if need be.
    
    * [x] Closes #12276:
      - `"bellSound": null` didn't work. This one was easier, and is atomically in bcc2ca0. Basically, we would deserialize that as an array with a single empty string in it, which we'd try to then play. I think it's more idomatic to have that deserialized as an empty array, which correctly falls back to playing the default sound.
    * [x] Closes #12258: 
      - This one is the majority of the rest of the PR. If you leave the MediaPlayer open, then the media keys will _affect the Terminal_. More importantly, once the bell sounds, they'd replay the bell, which is insane. So the fix is to re-create the media player when we need it. We do this per-pane for simpler lifetime tracking. I'm not worried about the overhead of creating a mediaplayer here, since we're already throttling bells.
    * Originally added in #11511
    * [x] Tested manually
      - Use [`no.mp4`](https://www.youtube.com/watch?v=x2w9TyCv2gk) for this since that's like, 17s long
      - Checked that closing panes / the terminal while a bell was playing didn't crash
      - Playing a bunch of bells at once works
      - closing a pane stops the bell it's playing
      - once the bell stops, the media keys went back to working for Spotify
    * [x] I work here
    zadjii-msft committed Jan 31, 2022
    Configuration menu
    Copy the full SHA
    b1ace96 View commit details
    Browse the repository at this point in the history
  4. Use the macros for duplicating as well (#12284)

    Introduced in #11416
    
    We weren't using these macros for duplicating as well, so I forgot to duplicate a couple settings. This PR switches duplicating over to using the macros as well, which shou;d reduce future bugs. 
    
    Also adds notes to which properties are intentionally omitted from these macros.
    
    * [x] closes #12265
    * [x] Verified manually that #12120 still works as expected
    zadjii-msft committed Jan 31, 2022
    Configuration menu
    Copy the full SHA
    c27a775 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    8064d40 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    f114b00 View commit details
    Browse the repository at this point in the history
  7. Add a11y names to more controls (#12299)

    ## Summary of the Pull Request
    
    This adds names to more of our focusable elements. This should be the rest of them that I missed in #11364
    
    ## References
    
    * #9990: a11y megathread
    * #11155: original version of this
    
    ## PR Checklist
    * [x] Should take care of #11996 once confirmed
    * [x] I work here
    
    
    ## Validation Steps Performed
    
    Used Accessibility Insights to verify.
    
    ## Detailed Description of the Pull Request / Additional comments
    
    There is one other weird bit. All the expanders that have content below the expander (not inline), show up as focusable, but don't have names. Even when I add names to them. I believe this is due to microsoft/microsoft-ui-xaml#5820, which is fixed in microsoft/microsoft-ui-xaml#6032, in https://github.com/microsoft/microsoft-ui-xaml/releases/tag/v2.8.0-prerelease.220118001. Unfortunately, we're on a 2.7 prerelease, so we don't have that fix yet. I may see how painful moving to that is, because we're gonna get another a11y ping as soon as 1.13 ships.
    
    I pre-emptively added names to these guys in f7ba158, so that the new MUX should just fix this without any thinking on our part.
    zadjii-msft committed Jan 31, 2022
    Configuration menu
    Copy the full SHA
    cf4d47c View commit details
    Browse the repository at this point in the history
  8. Replaced the sizeof parameter of the if statement with ARRAYSIZE (#12273

    )
    
    The pull request fixes the issue where "sizeof" parameter was use instead of "ARRAYSIZE".
    
    ## PR Checklist
    * [x] Closes #xxx
    * [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA
    * [x] Documentation updated. If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: #xxx
    * [x] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx
    
    ## Detailed Description of the Pull Request / Additional comments
    
    This was a pretty straight forward issue, i just replace sizeof which gives the byte size with ARRAYSIZE which give the number of elements in the array.
    abdoulkkonate committed Jan 31, 2022
    Configuration menu
    Copy the full SHA
    5fa1ba8 View commit details
    Browse the repository at this point in the history
  9. Make the SearchBox announce if it found results or not (#12301)

    Basically, this is the same as #12266, but for the `SearchBoxControl`. Trickily, the ControlCore is the one that knows if there were search results, but the TermControl has to be the one to announce it.
    
    * [x] Will take care of #11973 once a11y team confirms
    * [x] Tested manually with Narrator
    * [x] Resolves a part of #6319, which I'm repurposing just to displaying the number of results in general. 
    * See also #3920
    zadjii-msft committed Jan 31, 2022
    Configuration menu
    Copy the full SHA
    fbe0416 View commit details
    Browse the repository at this point in the history

Commits on Feb 1, 2022

  1. Add PGOBuildMode to PGD merge step (#12306)

    I added a condition to exclude some of the NuGet PGO stuff when there was no build mode, but appear to not have propagated any of it in the PGD merge job. This sets it to Optimize here so it'll go through.
    
    ## PR Checklist
    * [x] Closes #12300
    * [x] I work here.
    * [x] It blends.
    
    ## Validation Steps Performed
    * [x] Ran the PGO Instrument Phase
    * [x] Ran the PGO Optimize Phase
    miniksa committed Feb 1, 2022
    Configuration menu
    Copy the full SHA
    469202f View commit details
    Browse the repository at this point in the history
  2. Add experimental.useAtlasEngine to schema (#12304)

    does what it says on the can.
    
    * [x] closes #12302
    
    Co-authored-by: Dustin L. Howett <duhowett@microsoft.com>
    zadjii-msft and DHowett committed Feb 1, 2022
    Configuration menu
    Copy the full SHA
    27de97b View commit details
    Browse the repository at this point in the history
  3. AtlasEngine: Fix support for combining diacritics (#12307)

    `IDWriteTextAnalyzer::GetGlyphs` is not enough to get a
    `DWRITE_SHAPING_TEXT_PROPERTIES::canBreakShapingAfter`
    value that works for combining diacritical marks.
    This requires an additional call to `GetGlyphPlacements`.
    This commit increases CPU usage for complex text by ~10%.
    
    ## PR Checklist
    * [x] Closes #11925
    * [x] I work here
    * [x] Tests added/passed
    
    ## Validation Steps Performed
    * ``echo "[e`u{0301}`u{0301}]"`` prints an "e" with 2 accents ✅
    lhecker committed Feb 1, 2022
    Configuration menu
    Copy the full SHA
    93be688 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    70d8b2a View commit details
    Browse the repository at this point in the history
  5. Make sure Terminal Stable shows up as default on 22544+ (#12320)

    Since we turned this feature on in windows, and it relies on _lying
    about the contents of the registry_, Terminal needs to be in on the
    joke.
    
    This will need to be reverted and serviced if we choose not to ship like
    this.
    
    Fixes #12308
    DHowett committed Feb 1, 2022
    Configuration menu
    Copy the full SHA
    457738e View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    bf32f45 View commit details
    Browse the repository at this point in the history

Commits on Feb 2, 2022

  1. Localize and polish Profile page navigators (#12321)

    ## Summary of the Pull Request
    Adds some polish around the navigators in the profile page (i.e. "appearance" and "advanced" button) by doing the following:
    - use the localized resources for the pivot on the navigators
    - simplify the navigators to be buttons instead of toggle buttons
    
    Doing so has Narrator identify these as buttons rather than toggle buttons. So now Narrator won't say that the button is "off", which just makes more sense.
    
    ## Validation Steps Performed
    ✅ Narrator says "Advanced button" or "Appearance button" on the navigator
    ✅ The navigators look the same as before
    carlos-zamora committed Feb 2, 2022
    Configuration menu
    Copy the full SHA
    d07c536 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    29e97b6 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    3e75f25 View commit details
    Browse the repository at this point in the history
  4. Update accessible names for 'add profile' page buttons (#12324)

    ## Summary of the Pull Request
    When using a screen reader, the buttons on the "add a new profile" page were being read weirdly:
    - "New empty profile" button read as "create new button button"
    - "duplicate" button read as "duplicate button button"
    
    It's generally standard to read out the text inside the button, so I did just that by reusing the existing localized resources. This also removes the redundant "button" that is said by the screen reader.
    
    I also removed the unused `AutomationId` and unnecessary `Button.Content` tags. 
    
    #11156 can be closed upon validation by the accessibility team.
    
    ## Validation Steps Performed
    ✅ navigate to both buttons using Narrator; make sure it sounds right
    carlos-zamora committed Feb 2, 2022
    Configuration menu
    Copy the full SHA
    24c5f7b View commit details
    Browse the repository at this point in the history
  5. Fix more SUI and Rejuvenated UI issues (#12326)

    - The add new profile page now uses a dropdown rather than radio buttons
    - Subheaders, breadcrumb bar, buttons etc are now all centralized when the window is maximized (so they all align with the expanders now)
    - We no longer override the titlebar colors and instead use the xaml defaults (these still aren't great but at least we will get the fix automatically when it happens upstream)
    - Breadcrumb bar no longer has a negative margin, so there's no weird overlap that happens when the window becomes small
    - The number boxes for launch size and font size now use the `Inline` placement mode rather than compact, allowing modification to the number with fewer clicks
    - Textboxes now have a greater max width so they can occupy more space in the expander if needed
    PankajBhojwani committed Feb 2, 2022
    Configuration menu
    Copy the full SHA
    0a545b7 View commit details
    Browse the repository at this point in the history

Commits on Feb 3, 2022

  1. appx: Use a different resource for the Properties DisplayName (#12337)

    We have to do this so that the store sees us as one thing ("Windows
    Terminal") and the Start menu sees us as another ("Terminal").
    
    The store will reject our package if the value we use for "DisplayName"
    here doesn't match the store's "reserved names".
    
    This value is *not used* by the start menu.
    DHowett committed Feb 3, 2022
    Configuration menu
    Copy the full SHA
    e064c15 View commit details
    Browse the repository at this point in the history

Commits on Feb 4, 2022

  1. Refactor and simplify the ConGetSet API (#12247)

    ## Summary of the Pull Request
    
    This PR refactors the `ConGetSet` API, eliminating some of the bloat produced by the `DoSrvPrivateXXXX` functions, simplifying the method naming to more closely match the `ITerminalApi` interface, and making better use of exceptions for error conditions in place of boolean return values.
    
    ## References
    
    This is another small step towards merging the `AdaptDispatch` and `TerminalDispatch` classes (#3849).
    
    ## PR Checklist
    * [x] Closes #12193
    * [x] Closes #12194
    * [x] CLA signed.
    * [ ] Tests added/passed
    * [ ] Documentation updated.
    * [ ] Schema updated.
    * [x] I've discussed this with core contributors already. Issue number where discussion took place: #3849
    
    ## Detailed Description of the Pull Request / Additional comments
    
    There are two main parts to this. The first step was to get rid of all the `DoSrvPrivateXXX` functions, and move their implementation directly into the `ConhostInternalGetSet` class. For the most part this was just copying and pasting the code, but I also fixed a couple of bugs where we were using the wrong output buffer (the global buffer rather than the one associated with the output handle), and got rid of some unnecessary calls to `GetActiveBuffer`.
    
    The second part was to make better use of exceptions for error conditions. Instead of catching the exceptions at the `ConGetSet` level, we now allow them to fall through all the way to the `StateMachine`. This greatly simplifies the `AdaptDispatch` implementation since it no longer needs to check a boolean return value on every `ConGetSet` call. This also enables the getter methods to return properties directly instead of having to use a reference parameter.
    
    ## Validation Steps Performed
    
    A number of the unit tests had to be updated to match the new API. Sometimes this just required changes to method names, but in other cases error conditions that were previously detected with boolean returns now needed to be caught as exceptions. 
    
    There were also a few direct calls to `DoSrvPrivateXXX` functions that now needed to be invoked through other means: either by generating an equivalent escape sequence, or calling a lower level API serving the same purpose.
    
    And in the adapter tests, the mock `ConGetSet` implementation required significant refactoring to match the new interface, mostly to account for the changes in error handling.
    j4james committed Feb 4, 2022
    Configuration menu
    Copy the full SHA
    5238235 View commit details
    Browse the repository at this point in the history
  2. Adding missed MIT license in a few files (#12368)

    ## Summary of the Pull Request
    Adding missed MIT license in a few files.
    
    ## PR Checklist
    * [X] Closes #12062
    * [X] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA
    jerry-shao committed Feb 4, 2022
    Configuration menu
    Copy the full SHA
    2e5e98a View commit details
    Browse the repository at this point in the history

Commits on Feb 5, 2022

  1. Always publish the binlog (#12355)

    We're investigating an issue where the build succeeded but something still got lost somewhere. If we had the binlogs, maybe we could diff and track it down faster.
    miniksa committed Feb 5, 2022
    Configuration menu
    Copy the full SHA
    12034b3 View commit details
    Browse the repository at this point in the history
  2. Fix toggle switches needing a negative margin (#12381)

    ## Summary of the Pull Request
    Reducing the `MinWidth` of a toggle switch means it no longer needs a negative margin to align it correctly
    
    ## PR Checklist
    * [ ] Closes #xxx
    * [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA
    * [ ] Tests added/passed
    * [ ] Documentation updated. If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: #xxx
    * [ ] Schema updated.
    * [x] I work here
    
    ## Validation Steps Performed
    Setting a different language no longer causes the toggle switch to fall out of the expander
    PankajBhojwani committed Feb 5, 2022
    Configuration menu
    Copy the full SHA
    64efa67 View commit details
    Browse the repository at this point in the history
  3. Hardcode the language list for the package manifest and settings drop…

    …down (#12375)
    
    The `x-generate` statement seems to have fallen apart somewhere and is no longer generating the valid list of languages for display. This hardcodes the list into the manifest to restore it, which is a valid option per the documentation.
    
    We also hardcode the limited subset of languages into the Settings application because the main application supports fewer languages than we have been translated into for the shell extensions for Windows Explorer and Start Menu integration.
    
    ## PR Checklist
    * [x] Closes #12351
    * [x] I work here.
    * [x] Manual tests below
    
    ## Validation Steps Performed
    - [x] Clean built locally with `msbuild.exe openconsole.sln /p:Configuration=Release /p:Platform=x64 /p:WindowsTerminalBranding=Release /t:Terminal\CascadiaPackage /m /bl:log4.binlog` and checked that the `appxmanifest.xml` that popped out the other side contained the same languages that it used to contain.
    - [x] Built in the release pipeline
    - [x] Installed release and preview branded packages. Changed my machine language to Polish (pl-PL) which is not one of the fully localized languages, but is one of the limited ones. Checked the start menu and right-click menus and saw Polish text for Terminal and Terminal Preview. Checked the Settings page in our app and saw only the limited 14 language list for the application itself.
    miniksa committed Feb 5, 2022
    Configuration menu
    Copy the full SHA
    7734cd7 View commit details
    Browse the repository at this point in the history

Commits on Feb 7, 2022

  1. Fix disclaimer text not centralizing when maximized (#12374)

    ## Summary of the Pull Request
    Fix the disclaimer text boxes in `Rendering` and `Defaults`not centralizing along with the expanders when the window is maximized
    
    ## PR Checklist
    * [ ] Closes #xxx
    * [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA
    * [ ] Tests added/passed
    * [ ] Documentation updated. If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: #xxx
    * [ ] Schema updated.
    * [x] I work here
    
    ## Validation Steps Performed
    <img width="1128" alt="defaults" src="https://user-images.githubusercontent.com/26824113/152584084-a999cb29-73bc-4970-889a-f95ea64c1b4c.png">
    <img width="1128" alt="rendering" src="https://user-images.githubusercontent.com/26824113/152584099-a54519da-7bca-4ebe-b487-b68ac5cf1a37.png">
    PankajBhojwani committed Feb 7, 2022
    Configuration menu
    Copy the full SHA
    2604358 View commit details
    Browse the repository at this point in the history
  2. Fix invoking the rightmost breadcrumb bringing you back to Profiles_B…

    …ase (#12376)
    
    ## Summary of the Pull Request
    We no longer do anything when the rightmost breadcrumb is invoked
    
    ## PR Checklist
    * [x] Closes #12325 
    * [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA
    * [ ] Tests added/passed
    * [ ] Documentation updated. If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: #xxx
    * [ ] Schema updated.
    * [x] I work here
    
    ## Validation Steps Performed
    Tested manually, cannot repro #12325 anymore
    PankajBhojwani committed Feb 7, 2022
    Configuration menu
    Copy the full SHA
    527b9cd View commit details
    Browse the repository at this point in the history
  3. Fix the grammar in a comment (#12386)

    ## Summary of the Pull Request
    After 'must', the verb is used without 'to'. Correct: "must" or "have to".
    
    ## PR Checklist
    * [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA
    
    ## Validation Steps Performed
    Not required, only comment has been changed.
    sebastiansterk committed Feb 7, 2022
    Configuration menu
    Copy the full SHA
    9cdebf4 View commit details
    Browse the repository at this point in the history
  4. Update Bug_Report.yml (#12404)

    Added label for "Bug Report".
    serjan-nasredin committed Feb 7, 2022
    Configuration menu
    Copy the full SHA
    a935bb7 View commit details
    Browse the repository at this point in the history

Commits on Feb 8, 2022

  1. Fix profile matching for paths containing unquoted whitespace (#12348)

    The previous code had two bugs for:
    * paths with more than 1 whitespace
      The code joins the argv array by replacing null-word terminators with
      whitespace. Unfortunately it always referred to the separator between
      `argv[0]` and `argv[1]` for this instead of continuing to join
      those between 1 and 2, etc.
    * paths sharing a common prefix with another directory
      `SearchPathW` returns paths that aren't necessarily paths to files.
      A call to `GetFileAttributesW` was added, ensuring we only resolve file paths.
    
    ## PR Checklist
    * [x] Closes #12345
    * [x] I work here
    * [ ] Tests added/passed
    
    ## Validation Steps Performed
    * Paths with more than 1 whitespace resolve correctly ✅
    * Paths with neighboring directories sharing a common prefix resolve correctly ✅
    * Tests added ✅
    lhecker committed Feb 8, 2022
    Configuration menu
    Copy the full SHA
    3171a89 View commit details
    Browse the repository at this point in the history
  2. Fix a potential crash when setting up the jumplist (#12430)

    I have no idea how this is even possible to hit. If this is able to be null, then we failed to load the settings in such a catastrophic way that nothing should work. However, OP's Terminal seemed to have already loaded the settings. By all accounts, doesn't make sense.
    
    Regardless, the code here would crash if this ever is null, so we may as well catch it.
    
    * [x] Closes #12360
    * [ ] No way to verify this since it isn't even reproable on OPs machine, but it does have a lot of hits for that failure bucket (!!!)
    zadjii-msft committed Feb 8, 2022
    Configuration menu
    Copy the full SHA
    d0daab6 View commit details
    Browse the repository at this point in the history
  3. Fix focus box around color schemes combo box (#12439)

    The focus box around the color schemes combo box was getting cut off, this change adds a small margin to the stackpanel to allow space for the focus box
    
    ## PR Checklist
    * [x] Closes #12328
    PankajBhojwani committed Feb 8, 2022
    Configuration menu
    Copy the full SHA
    f5f0712 View commit details
    Browse the repository at this point in the history
  4. XtermEngine: Explicitly emit cursor state on the first frame (#12434)

    This commit fixes an issue, where we failed to emit a DECTCEM sequence to hide
    the cursor if it was hidden before XtermEngine's first frame was finalized.
    Even in such cases we need to emit a DECTCEM sequence
    in order to ensure we're in a consistent state.
    
    ## Validation Steps Performed
    * Added test✅
    * Run #12401's repro steps around 30 times✅
    
    Closes #12401
    lhecker committed Feb 8, 2022
    Configuration menu
    Copy the full SHA
    dbb7077 View commit details
    Browse the repository at this point in the history
  5. Properly fall back to Segoe MDL2 for our icons on Win10 (#12438)

    Segoe Fluent isn't available on Windows 10, and doesn't stealthily ship with WinUI. So if we manually set the font family to `"Segoe Fluent Icons"`, then that will just display boxes in Win10.
    
    This instead uses the resource `"{ThemeResource SymbolThemeFontFamily}"` which will gracefully fall back on Win10.
    
    See:
    * microsoft/microsoft-ui-xaml#3745, which inspired this solution.
    
    Guess what! The backgound image icons were also manually specifying this font, so they had to get updated too. I couldn't find any other `Segoe Fluent` references in the code.
    
    * [x] Closes #12350
    * [x] Checked Windows 11 locally
    * [x] Checked Win10 (screenshots incoming from other machine)
    zadjii-msft committed Feb 8, 2022
    Configuration menu
    Copy the full SHA
    27a1b9d View commit details
    Browse the repository at this point in the history
  6. Fix browse buttons getting cut off when the window is too narrow (#12435

    )
    
    With the recent change to allow text boxes to be bigger, the `Browse` button that some of them have was getting cut off when the window was too narrow. This change puts the `Browse` button below the text box instead of next to it to prevent this issue.
    
    ## PR Checklist
    * [x] Closes #12335
    PankajBhojwani committed Feb 8, 2022
    Configuration menu
    Copy the full SHA
    02135ed View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    59ef21a View commit details
    Browse the repository at this point in the history
  8. Validate cursor position in UIA UTR ctor (#12436)

    This adds some validation in the `UiaTextRange` ctor for the cursor position.
    
    #8730 was caused by creating a `UiaTextRange` at the cursor position when it was in a delayed state (meaning it's purposefully hanging off of the right edge of the buffer). Normally, `Cursor` maintains a flag to keep track of when that occurs, but Windows Terminal isn't maintaining that properly in `Terminal::WriteBuffer`.
    
    The _correct_ approach would be to fix `WriteBuffer` then leverage that flag for validation in `UiaTextRange`. However, messing with `WriteBuffer` is a little too risky for our comfort right now. So we'll do the second half of that by checking if the cursor position is valid. Since the cursor is really only expected to be out of bounds when it's in that delayed state, we get the same result (just maybe a tad slower than simply checking a flag).
    
    Closes #8730 
    
    Filed #12440 to track changes in `Terminal::_WriteBuffer` for delayed EOL wrap.
    
    ## Validation Steps Performed
    While using magnifier, input/delete wrapped text in input buffer.
    carlos-zamora committed Feb 8, 2022
    Configuration menu
    Copy the full SHA
    5dcf526 View commit details
    Browse the repository at this point in the history

Commits on Feb 9, 2022

  1. Allow exceptions from ITerminalApi and TerminalDispatch (#12432)

    This PR updates the `ITerminalApi` and `TerminalDispatch` classes to
    allow exceptions to be thrown in case of errors instead of using boolean
    return values.
    
    ## References
    
    This brings the Terminal code into alignment with the `AdaptDispatch`
    and `ConGetSet` changes made in PR #12247.
    
    And while this isn't exactly a fix for #12378, it does at least stop the
    app from crashing now.
    
    ## Detailed Description of the Pull Request / Additional comments
    
    All the `TerminalDispatch` methods have had their `noexcept` specifiers
    dropped, and any `try`/`catch` wrapping removed, so exceptions will now
    fall through to the `StateMachine` class where they should be safely
    caught and logged.
    
    The same goes for the `ITerminalApi` interface and its implementation in
    the `Terminal` class. And many of the methods in this interface have
    also had their `bool` return values changed to `void`, since there is
    usually not a need for error return values now.
    
    ## Validation Steps Performed
    
    I've manually tested the `OSC 9;9` sequence described in #12378 and
    confirmed that it no longer crashes.
    j4james committed Feb 9, 2022
    Configuration menu
    Copy the full SHA
    9c11e02 View commit details
    Browse the repository at this point in the history
  2. Fix defterm + elevate by default (#12442)

    We absolutely cannot allow a defterm connection to
    auto-elevate. Defterm doesn't work for elevated senarios in the
    first place. If we try accepting the connection, the spawning an
    elevated version of the Terminal with that profile... that's a
    recipe for disaster. We won't ever open up a tab in this window.
    
    * [x] Closes #12370
    * [x] Tested manually, since there's not a great way to add defterm tests
    zadjii-msft committed Feb 9, 2022
    Configuration menu
    Copy the full SHA
    303f9d7 View commit details
    Browse the repository at this point in the history
  3. Don't ever allow ~ as a startingDirectory (#12437)

    Basically, some WSL distros ship fragments that replace the `commandline` with the executable for their distro (`ubuntu.exe`, etc.). We didn't expect that when we changed the `startingDirectory` for them all to `~`. 
    
    Unfortunately, `~` is really never a valid path for a process on windows, so those distros would now fail with
    
    ```
    [error 2147942667 (0x8007010b) when launching `ubuntu1804.exe']
    Could not access starting directory "~"
    ```
    
    If we find that we were unable to mangle `~` into the user's WSL `commandline`, then we will re-evaluate that `startingDirectory` as `%USERPROFILE%`, which is at least something sensible, if albeit not what they wanted. 
    
    * regressed in #12315
    * [x] Closes #12353
    * [x] Tested with a (`ubuntu1804.exe`, `~`) profile - launched successfully, where 1.13 in market fails.
    * [x] added tests
    zadjii-msft committed Feb 9, 2022
    Configuration menu
    Copy the full SHA
    1870fee View commit details
    Browse the repository at this point in the history
  4. Eliminate the DispatchCommon class (#12389)

    ## Summary of the Pull Request
    
    Other than the `s_ResizeWindow` function, the `DispatchCommon` class was
    just a couple of static functions indirectly calling the `ConGetSet`
    interface. So by moving the `s_ResizeWindow` implementation into the
    `ConhostInternalGetSet` class, we could easily replace all usage of
    `DispatchCommon` with direct calls to `ConGetSet`.
    
    ## PR Checklist
    * [x] Closes #12253
    * [x] CLA signed.
    * [ ] Tests added/passed
    * [ ] Documentation updated.
    * [ ] Schema updated.
    * [x] I've discussed this with core contributors already. Issue number
    where discussion took place: #12253
    
    ## Validation Steps Performed
    
    I've manually confirmed the resizing operations still work as expected.
    The other functions are harder to test, but were trivial replacements.
    j4james committed Feb 9, 2022
    Configuration menu
    Copy the full SHA
    d63ab27 View commit details
    Browse the repository at this point in the history
  5. Eliminate the AdaptDefaults class (#12390)

    ## Summary of the Pull Request
    
    The only method that was really needed in the `AdaptDefault` class was
    the `PrintString` method, and that could easily be moved into the
    `ConGetSet` interface. That lets us get rid of the `AdaptDefault` class
    altogether, simplifying the construction of the `AdaptDispatch` class,
    and brings us more in line with the `TerminalDispatch` implementation.
    
    ## PR Checklist
    * [x] Closes #12318
    * [x] CLA signed.
    * [ ] Tests added/passed
    * [ ] Documentation updated.
    * [ ] Schema updated.
    * [x] I've discussed this with core contributors already. Issue number
    where discussion took place: #12318
    
    ## Detailed Description of the Pull Request / Additional comments
    
    The `Execute` method was never used at all, so there was no problem with
    losing that. But I also noticed there was an equivalent `ExecuteChar`
    method in the `ITerminalApi` interface, which also wasn't being used, so
    I've removed that too.
    
    Then there was a `Print` method taking a single `wchar_t` parameter, but
    that was ultimately implemented as a `PrintString` call anyway, so that
    translation could easily be accomplished in the `AdaptDispatch` calling
    code, the same way it's done in `TerminalDispatch`.
    
    That left us with the `PrintString` method, which could simply be moved
    into the `ConGetSet` interface, which would then more closely match the
    `ITerminalApi` interface.
    
    There was also a `GetResult` method, that returned the status of the
    last `PrintString`, but that result was never actually checked anywhere.
    What I've done now is make the `PrintString` method throw an exception
    on failure, and that will be caught and logged in the `StateMachine`.
    
    ## Validation Steps Performed
    
    I've started a bash shell in conhost to verify that it still works.
    Since almost everything goes through `PrintString` in VT mode, it should
    be obvious if something was broken.
    j4james committed Feb 9, 2022
    Configuration menu
    Copy the full SHA
    f936c44 View commit details
    Browse the repository at this point in the history
  6. Enable the 'automatic adjustment of indistinguishable text' setting f…

    …or Dev builds (#12444)
    
    ## Summary of the Pull Request
    Followup from our discussion during team sync, the 'automatic adjustment of indistinguishable text' setting is going to be enabled for dev builds only.
    
    ## References
    #12160 
    
    ## PR Checklist
    * [ ] Closes #xxx
    * [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA
    * [ ] Tests added/passed
    * [ ] Documentation updated. If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: #xxx
    * [ ] Schema updated.
    * [x] I work here
    
    ## Validation Steps Performed
    Setting appears on dev build and the feature works
    PankajBhojwani committed Feb 9, 2022
    Configuration menu
    Copy the full SHA
    4a530a7 View commit details
    Browse the repository at this point in the history

Commits on Feb 10, 2022

  1. Automate packaged submission into Windows (#12449)

    We're now building a fully provenance, compliance, and security
    validated package (vpack) through our Release pipeline. This attaches
    the last phase which automates the submission into the Windows product.
    It will also automatically trace back the source, commit SHA, and build
    to the submission here from the Windows side.
    
    * [x] Automates a manual activity I performed a few times recently
    * [x] I work here
    * [x] Ran a test of it against `release-1.12` and it worked
    miniksa committed Feb 10, 2022
    Configuration menu
    Copy the full SHA
    10c963a View commit details
    Browse the repository at this point in the history

Commits on Feb 11, 2022

  1. Add tooltips for nav items in the SUI (#12448)

    ## Summary of the Pull Request
    Profiles with long names were having their titles cut off in the navigation view sidebar. This change adds tooltips to all nav view items so the full names can still be read.
    
    ## References
    #11353 
    
    ## PR Checklist
    * [ ] Closes #xxx
    * [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA
    * [ ] Tests added/passed
    * [ ] Documentation updated. If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: #xxx
    * [ ] Schema updated.
    * [x[ I work here
    
    ## Validation Steps Performed
    <img width="261" alt="sidebartooltip" src="https://user-images.githubusercontent.com/26824113/153270004-02ec3ca7-8787-41be-a4ee-c60efa8cc5e6.png">
    <img width="341" alt="sidebartooltip2" src="https://user-images.githubusercontent.com/26824113/153270033-263069f6-75ff-4215-9c83-e0a946ce9616.png">
    PankajBhojwani committed Feb 11, 2022
    Configuration menu
    Copy the full SHA
    19a5eb2 View commit details
    Browse the repository at this point in the history
  2. Fix the add/delete unfocused appearance buttons (#12451)

    ## Summary of the Pull Request
    The add/delete unfocused appearance buttons now have text on them and are closed to the `Unfocused appearance` header
    
    ## References
    #11353 
    
    ## PR Checklist
    * [ ] Closes #xxx
    * [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA
    * [ ] Tests added/passed
    * [ ] Documentation updated. If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: #xxx
    * [ ] Schema updated.
    * [x] I work here
    
    ## Validation Steps Performed
    <img width="548" alt="add" src="https://user-images.githubusercontent.com/26824113/153463971-de14a68b-5ed9-4768-80f8-2a5a5a21bc9f.png">
    <img width="557" alt="delete" src="https://user-images.githubusercontent.com/26824113/153463993-9a7413d4-d895-4813-a6ff-1b157f1e72f4.png">
    PankajBhojwani committed Feb 11, 2022
    Configuration menu
    Copy the full SHA
    c0083ef View commit details
    Browse the repository at this point in the history
  3. Update the cmdpal narrator message to include the number of results. (#…

    …12429)
    
    Updates this narrator announcement message to include the number of results it found. There are two versions:
    * one for a singular result
    * one for multiple results.
    
    which should help with loc.
    
    We're trying to get this in with the loc hotfix, so 👀 please 
    
    * [x] will take care of the last bit of #7907
    
    verified with narrator locally.
    zadjii-msft committed Feb 11, 2022
    Configuration menu
    Copy the full SHA
    9ea0c93 View commit details
    Browse the repository at this point in the history
  4. Source index the public symbols too (#12450)

    Now that we've figured out how to publish the public symbols to the official Microsoft download server... we may as well embed the source code linking information inside of them given that it's right here on GitHub. This attempts to run our existing source linking scripts against the public copy of the symbols. 
    
    ## PR Checklist
    * [x] Closes #12443
    * [x] I work here
    * [x] Tested manually
    
    ## Validation Steps Performed
    * [x] Build with it: https://dev.azure.com/microsoft/Dart/_build/results?buildId=44930661&view=logs&j=8f802011-b567-5b81-5fa6-bce316c020ce
    * [x] Point the debugger at them and see if it can find the sources
    * [x] Maybe also look at them in a hex editor or whatnot and validate I can see the source paths pointing at GitHub
    miniksa committed Feb 11, 2022
    Configuration menu
    Copy the full SHA
    8b90669 View commit details
    Browse the repository at this point in the history
  5. AtlasEngine: Fix leak check report for OpenConsole (#12415)

    AtlasEngine enables various debug options for D2D and D3D in Debug builds.
    Among those are resource leak checks, which were broken in OpenConsole
    due to the unclean exit in `ServiceLocator::RundownAndExit`.
    This commit fixes the issue by running the destructors
    of any renderers registered in the Window class first.
    
    ## PR Checklist
    * [x] Closes #12414
    * [x] I work here
    
    ## Validation Steps Performed
    
    * Set `HKEY_CURRENT_USER\Console\UseDx` to `2`
    * Run `OpenConsole.exe`
    * Exit
    * No exceptions are thrown ✅
    lhecker committed Feb 11, 2022
    Configuration menu
    Copy the full SHA
    9d7a46f View commit details
    Browse the repository at this point in the history
  6. Updates all our icons to use Segoe Fluent (#12469)

    * use `FontFamily="{ThemeResource SymbolThemeFontFamily}"` where possible, in XAML
    * use `FontFamily{ L"Segoe Fluent Icons, Segoe MDL2 Assets" }` in codebehind
    
    Basically just a simple string replace.
    
    * [x] This was a bullet point in #11353
    * [x] Confirmed manually on my win10 PC
    * see also #12438
    
    Actually, this is the last bullet in #11353, so I'm gonna say closes #11353. 
    
    Screenshots below.
    zadjii-msft committed Feb 11, 2022
    Configuration menu
    Copy the full SHA
    0a15643 View commit details
    Browse the repository at this point in the history
  7. Enable Segoe Variable (#12462)

    By adding another entry to our `maxversiontested`s.
    
    Screenshots in #12452 (comment)
    
    * [x] Closes #12452 
    * [x] I work here
    * [x] Docs are fine
    * [x] Tests are fine
    zadjii-msft committed Feb 11, 2022
    Configuration menu
    Copy the full SHA
    09e9915 View commit details
    Browse the repository at this point in the history

Commits on Feb 14, 2022

  1. Fix off-by-one bug in NormalizeCommandLine (#12484)

    #12348 introduced an off-by-one bug. While the `NormalizeCommandLine` loop
    should exit early when there aren't at least _two_ arguments to be joined,
    the final argument-append needs to happen even if just _one_ argument exists.
    
    This commit fixes the issue and introduces changes to additionally monitor
    the early loop exit, as well as the call to `ExpandEnvironmentStringsW`.
    
    ## PR Checklist
    * [x] Closes #12461
    * [x] I work here
    * [x] Tests added/passed
    
    ## Validation Steps Performed
    * All `TerminalSettingsTests` tests pass ✅
    lhecker committed Feb 14, 2022
    Configuration menu
    Copy the full SHA
    e06e131 View commit details
    Browse the repository at this point in the history

Commits on Feb 15, 2022

  1. Manually set the colors of the TabViewBackground (#12460)

    This has been a saga.
    
    Basically, any resources in `App.xaml` aren't going to be able to reference other theme-aware resources. We can't change the theme of the app at runtime, only elements within the app. So we can't use `ApplicationPageBackgroundThemeBrush` in app.xaml, because it will ALWAYS be evaluated as the OS theme version of that brush.
    
    * regressed in #12326
    * See also #10864
    * #3917 CANNOT be fixed in the same way. We're lucky here that the TabView uses a `{ThemeResource TabViewBackground}` in markup to set the bg. We're not similarly lucky with the Pane one. 
    * [x] closes #12356
    * [x] Tested manually. You can confirm, my eyes are bleeding from the OS-wide light mode
    zadjii-msft committed Feb 15, 2022
    Configuration menu
    Copy the full SHA
    5ba0d61 View commit details
    Browse the repository at this point in the history
  2. DON'T default-construct the MediaPlayer (#12463)

    I believe this fixes #12383, but I can't seem to find a way to set up a N SKU VM to confirm this.
    
    * [ ] TODO: wait till the morning to finish copying the N vhd I found off the build shares, to confirm this doesn't crash on launch.
    zadjii-msft committed Feb 15, 2022
    Configuration menu
    Copy the full SHA
    2cf46d4 View commit details
    Browse the repository at this point in the history
  3. Fix a memory leak in onecore interactivity (#12340)

    As noted in #6759:
    
    > `RtlCreateUnicodeString` creates a copy of the string on the process heap and the `PortName` variable has local-scope. The string doesn't get freed with `RtlFreeUnicodeString` before the function returns creating a memory leak.
    > `CIS_ALPC_PORT_NAME` is a constant string and the `PortName` variable should instead be initialized using the `RTL_CONSTANT_STRING` macro:
    >
    > ```c++
    > static UNICODE_STRING PortName = RTL_CONSTANT_STRING(CIS_ALPC_PORT_NAME);
    > ```
    
    I actually built this in the OS repo to make sure it'll still build, because this code doesn't even build outside Windows.
    
    * [x] Closes #6759
    * I work here.
    zadjii-msft committed Feb 15, 2022
    Configuration menu
    Copy the full SHA
    349b767 View commit details
    Browse the repository at this point in the history
  4. Copy localized strings from ContextMenu into the resource root (#12491)

    We chose to use the "ContextMenu" resource compartment when we
    changed the package name to Terminal in #12264 because it was more
    broadly localized than the rest of the application.
    
    It appears as though some platform features have trouble with the
    "more qualified" resource paths that #12264 required.
    
    To fix this, we will:
    
    1. Copy all of the ContextMenu localizations into CascadiaPackage's
       resource root
    2. Switch all manifest resource paths to use resources from the package
       root.
    
    Regressed in #12264
    Closes #12384
    Closes #12406 (tracked in microsoft/PowerToys#16118)
    DHowett committed Feb 15, 2022
    Configuration menu
    Copy the full SHA
    9501b23 View commit details
    Browse the repository at this point in the history
  5. Potentially fix Submit OneFuzz CI Job (#12489)

    ## Summary of the Pull Request
    Modifies the OneFuzz CI Job so that it attempts to read the notification config from a file rather than the command line.
    
    ## References
    Potential oversight in #10431.
    
    ## PR Checklist
    * [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA
    
    ## Detailed Description of the Pull Request / Additional comments
    Noticed that the CI job was failing on main, so took a look. According to the [docs](https://github.com/microsoft/onefuzz/blob/7f7d76fa7fd0e351f8ffd8c7aa5c5729e30f9e8f/docs/notifications.md#implementation), files should be referenced using `@./` notation.
    ianjoneill committed Feb 15, 2022
    Configuration menu
    Copy the full SHA
    9fcf92b View commit details
    Browse the repository at this point in the history

Commits on Feb 16, 2022

  1. Fix font axes/features not working on DPI change (#12492)

    When the dpi is changed, call `updateFont()` instead of `TriggerFontChange`, this
    means that we continue to use the existing font features/axes
    
    Closes #11287
    PankajBhojwani committed Feb 16, 2022
    Configuration menu
    Copy the full SHA
    3b46794 View commit details
    Browse the repository at this point in the history
  2. Remove "Window Persistence" feature flag (#12499)

    Removes the `Feature_PersistedWindowLayout` feature flag so that it's always enabled.
    
    Closes #12422
    carlos-zamora committed Feb 16, 2022
    Configuration menu
    Copy the full SHA
    d36cb75 View commit details
    Browse the repository at this point in the history

Commits on Feb 17, 2022

  1. Fix typos found by codespell (#12475)

    <!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? -->
    ## Summary of the Pull Request
    
    Fix typos found by codespell. Some of it in documentation and user-visible text, mostly in code comments. While I understand you might not be interested in fixing code comments, one of the reasons being extra noise in git history, kindly note that most spell checking tools do not discriminate between documentation and code comments. So it's easier to fix everything for long maintenance.
    
    <!-- Other than the issue solved, is this relevant to any other issues/existing PRs? --> 
    ## References
    
    <!-- Please review the items on the PR checklist before submitting-->
    ## PR Checklist
    * [ ] Closes #xxx
    * [X] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA
    * [x] Tests added/passed
    * [X] Documentation updated. If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: [#501](MicrosoftDocs/terminal#501)
    * [ ] Schema updated.
    * [ ] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx
    
    <!-- Provide a more detailed description of the PR, other things fixed or any additional comments/features here -->
    ## Detailed Description of the Pull Request / Additional comments
    
    <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well -->
    ## Validation Steps Performed
    
    I have checked and re-checked all changes.
    DimitriPapadopoulos committed Feb 17, 2022
    Configuration menu
    Copy the full SHA
    71c7556 View commit details
    Browse the repository at this point in the history

Commits on Feb 18, 2022

  1. Replace "acrylic" with "acrylic material" in i18n strings (#12505)

    "Acrylic material" is the official name as used on Microsoft Docs
    and should ensure it gets properly translated in all languages.
    
    ## PR Checklist
    * [x] Closes #9846
    * [x] Closes MSFT:36776499
    * [x] I work here
    
    ## Detailed Description of the Pull Request / Additional comments
    We originally intended to replace the strings with "acrylic transparency",
    but "acrylic material" is actually the official term on Microsoft Docs.
    lhecker committed Feb 18, 2022
    Configuration menu
    Copy the full SHA
    961c576 View commit details
    Browse the repository at this point in the history
  2. No longer load content dialogs when there is already one being shown (#…

    …12517)
    
    ## Summary of the Pull Request
    Somehow, the controls v2 update caused an issue where if you as much as _load_ a content dialog when there's already one open, we get holes in the terminal window (#12447)
    
    This commit introduces logic to `TerminalPage` to check whether there is a content dialog open before we try to load another one. 
    
    ## PR Checklist
    * [x] Closes #12447 
    * [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA
    * [ ] Tests added/passed
    * [ ] Documentation updated. If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: #xxx
    * [ ] Schema updated.
    * [x] I work here
    
    ## Validation Steps Performed
    Can no longer repro #12447
    PankajBhojwani committed Feb 18, 2022
    Configuration menu
    Copy the full SHA
    788d33c View commit details
    Browse the repository at this point in the history

Commits on Feb 22, 2022

  1. Don't crash trying to parse a command line that's a directory (#12538)

    ## Summary of the Pull Request
    Prevents a crash that could occur when invoking `wt C:\`
    
    ## PR Checklist
    * [x] Closes #12535
    * [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA
    * [x] Tests added/passed
    * [ ] Documentation updated. If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: #xxx
    * [ ] Schema updated.
    * [ ] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx
    
    ## Detailed Description of the Pull Request / Additional comments
    Updates `CascadiaSettings::NormalizeCommandLine()` to check that there are a suitable number of command line arguments to be concatenated together, to prevent accessing an array index in `argv` that doesn't exist.
    
    Also prevents a test flake that could occur in `TerminalSettingsTests::CommandLineToArgvW()`, due to generating an empty command line argument.
    
    ## Validation Steps Performed
    Added a test, and checked that invoking each of the command lines below behaved as expected:
    ```
    wtd C:\ # Window pops up with [error 2147942405 (0x80070005) when launching `C:\']
    wtd C:\Program Files # Window pops up with [error 2147942402 (0x80070002) when launching `C:\Program Files']
    wtd cmd # cmd profile pops up
    wtd C:\Program Files\Powershell\7\pwsh -WorkingDirectory C:\ # PowerShell profile pops up in C:\
    wtd "C:\Program Files\Powershell\7\pwsh" -WorkingDirectory C:\ # PowerShell profile pops up in C:\
    wtd . # Window pops up with [error 2147942405 (0x80070005) when launching `.']
    ```
    ianjoneill committed Feb 22, 2022
    Configuration menu
    Copy the full SHA
    722aafa View commit details
    Browse the repository at this point in the history
  2. Commit updated TerminalApp.Unit.Tests.manifest file (#12549)

    ## Summary of the Pull Request
    
    In PR #12462, a new `maxversiontested` entry was added to the
    _WindowsTerminal.manifest_ file which now gets propagated to the
    _TerminalApp.Unit.Tests.manifest_ file whenever a full build is
    executed. This PR is just committing the updated test manifest.
     
    ## PR Checklist
    * [x] Closes #12543
    * [x] CLA signed.
    * [ ] Tests added/passed
    * [ ] Documentation updated.
    * [ ] Schema updated.
    * [x] I've discussed this with core contributors already. Issue number
    where discussion took place: #12543
    j4james committed Feb 22, 2022
    Configuration menu
    Copy the full SHA
    4016a9f View commit details
    Browse the repository at this point in the history
  3. Protect the command palette against being paged with no items (#12528)

    Fixes two crashes amounting to 14% of our crash burden in Simulated
    Selfhost. I can't reproduce this organically, but I was able to do so by
    forcing the command palette to be empty.
    DHowett committed Feb 22, 2022
    Configuration menu
    Copy the full SHA
    30aa514 View commit details
    Browse the repository at this point in the history
  4. AtlasEngine: Fix inverted cursor alpha (#12548)

    The previous implementation only inverted the RGB values of the cell,
    but failed to account for situations where the `color` is transparent,
    which is the case when `backgroundOpaqueMixin` is 0 (for instance if
    acrylic backgrounds are enabled). In these situations the alpha
    component remained 0 which caused the cursor to be invisible.
    
    For some inexplicable reason this issue is only visible on a HDR display,
    even though it should also effect regular ones. God knows why.
    
    With this commit the cursor texture is treated as a mask that inverts the color.
    We use branching here, because I couldn't come up with a more clever solution.
    
    ## PR Checklist
    * [x] Closes #12507
    * [x] I work here
    * [x] Tests added/passed
    
    ## Validation Steps Performed
    * Cursor is visible on a HDR display with acrylic background ✅
    * TBD performance benchmark for `[branch]` ❌
    lhecker committed Feb 22, 2022
    Configuration menu
    Copy the full SHA
    9ab4abf View commit details
    Browse the repository at this point in the history

Commits on Feb 24, 2022

  1. Update light theme tab background for greater contrast. (#12529)

    Changes the tab view BG to `#e8e8e8`, as discussed in mail thread.
    
    Closes #12398
    zadjii-msft committed Feb 24, 2022
    Configuration menu
    Copy the full SHA
    c62705e View commit details
    Browse the repository at this point in the history

Commits on Feb 25, 2022

  1. build: ship a Win11 build of Terminal that's <=half the size (#12560)

    Four (4) squashed changes, with messages preserved.
    
    ## release: move symbol publication into its own phase
    
    Right now, symbol publication happens every time we produce a final
    bundle. In the future, we may be producing multiple bundles from the
    same pipeline run, and we need to make sure we only do *one* symbol
    publication to MSDL.
    
    When we do that, it will be advantageous for us to have just one phase
    that source-indexes and publishes all of the symbols.
    
    ## Remove Terminal's built-in copy of the VC Runtime
    
    This removes the trick we pulled in #5661 and saves us ~550kb per arch.
    
    Some of our dependencies still depend on the "app" versions of the
    runtime libraries, so we are going to continue shipping the forwarders
    in our package. Build rules have been updated to remove the non-Desktop
    VCLibs dependency to slim down our package graph.
    
    This is not a problem on Windows 11 -- it looks like it's shipped inbox.
    
    **BREAKING CHANGE**: When launched unpackaged, Terminal now requires the
    vcruntime redist to be installed.
    
    ## Prepare for toggling XAML between 2.7.0 and -prerelease on Win11
    
    common.openconsole.props is a pretty good place to stash the XAML
    version since it is included in every project (including the WAP
    project (unlike the C++ build props!)).
    
    I've gone ahead and added a "double dependency" on multiple XAML
    versions. We'll toggle them with a build flag.
    
    ## Run the release pipeline twice, for Win10 and Win11, at the same time
    
    This required some changes in how we download artifacts to make sure
    that we could control which version of Windows we were processing in any
    individual step.
    
    We're also going to patch the package manifest on the Windows 11 version
    so the store targets it more specifically.
    
    On top of the prior three steps, this lets us ship a Windows 11
    package that costs only ~15MB on disk. The Windows 10 version, for
    comparison, is about 40.
    DHowett committed Feb 25, 2022
    Configuration menu
    Copy the full SHA
    53a454f View commit details
    Browse the repository at this point in the history
  2. Add a pipeline that validates builds that touch features.xml (#12573)

    This is intended to be a PR triggered build that only runs when
    features.xml has been touched, to validate that the disabled features do
    not cause compilation errors.
    DHowett committed Feb 25, 2022
    Configuration menu
    Copy the full SHA
    24a030f View commit details
    Browse the repository at this point in the history
  3. Default Terminal Spec (#7414)

    Co-authored-by: Dustin L. Howett <duhowett@microsoft.com>
    miniksa and DHowett committed Feb 25, 2022
    Configuration menu
    Copy the full SHA
    d0d42c4 View commit details
    Browse the repository at this point in the history

Commits on Mar 1, 2022

  1. Fix a crash setting the hotkey during teardown (#12580)

    From MSFT:36797001. Okay so this is only .22% of our crashes, but every little bit helps, right?
    
    
    Turns out this is also hitting in:
    * MSFT:35726322
    * MSFT:34662459
    
    and together they're a fairly hot bug. 
    
    There's a large class of bugs where we might get a callback to one of our event handlers when we call `app.Close()` in the `AppHost` dtor. This PR adds manual revokers to these events, and makes sure to revoke them BEFORE nulling out the `_window`. That will prevent callbacks during the rest of the dtor, when the `_window` is null.
    zadjii-msft committed Mar 1, 2022
    Configuration menu
    Copy the full SHA
    8962c75 View commit details
    Browse the repository at this point in the history
  2. Fix fail-fast due to unlocked FreeProcessData call (#12599)

    2b202ce introduced a bug, where FreeProcessData was called without the console
    lock being held. The previous code can be found in 40e3dea, on line 441-454.
    
    ## PR Checklist
    * [x] Closes MSFT:21372705
    * [x] I work here
    * [x] Tests added/passed
    
    ## Validation Steps Performed
    None, as this fix is purely theoretic, but it matches the stack trace
    and 40e3dea clearly wasn't correctly ported to strict C++ either.
    lhecker committed Mar 1, 2022
    Configuration menu
    Copy the full SHA
    79a08ec View commit details
    Browse the repository at this point in the history
  3. Fix RTF generation for Unicode characters (#12586)

    ## Summary of the Pull Request
    Fixes RTF generation for text with Unicode characters.
    
    ## PR Checklist
    * [x] Closes #12379
    * [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA
    * [x] Tests added/passed
    * [ ] Documentation updated. If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: #xxx
    * [ ] Schema updated.
    * [ ] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx
    
    ## Validation Steps Performed
    Added some unit tests.
    
    Ran the following in PowerShell and copied the emitted text into WordPad.
    ```pwsh
    echo "This is some Ascii \ {}`nLow code units: á é í ó ú `u{2b81} `u{2b82}`nHigh code units: `u{a7b5} `u{a7b7}`nSurrogates: `u{1f366} `u{1f47e} `u{1f440}"
    ```
    ianjoneill committed Mar 1, 2022
    Configuration menu
    Copy the full SHA
    00113e3 View commit details
    Browse the repository at this point in the history

Commits on Mar 2, 2022

  1. update README

    zadjii-msft committed Mar 2, 2022
    Configuration menu
    Copy the full SHA
    9367b22 View commit details
    Browse the repository at this point in the history