You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Merged PR 3813180: Migrate selected GitHub changes up to 6b728cd
- Remember last-used string in the Find dialog in conhost (GH-2845)
(cherry picked from commit bfb1484)
- Bugfix: TextBuffer Line Wrapping from VTRenderer (GH-2797)
Change VT renderer to do erase line instead of a ton of erase chars
(cherry picked from commit 8afc5b2)
- Add some retry support to Renderer::PaintFrame (GH-2830)
If _PaintFrameForEngine returns E_PENDING, we'll give it another two
tries to get itself straight. If it continues to fail, we'll take down
the application.
We observed that the DX renderer was failing to present the swap chain
and failfast'ing when it did so; however, there are some errors from
which DXGI guidance suggests we try to recover. We'll now return
E_PENDING (and destroy our device resources) when we hit those errors.
FixesGH-2265.
(cherry picked from commit 277acc3)
- Enable VT processing by default for ConPTY (GH-2824)
This change enables VT processing by default for _all_ conpty clients. See
GH-1965 for a discussion on why we believe this is a righteous change.
Also mentioned in the issue was the idea of only checking the
`VirtualTerminalLevel` reg key in the conpty startup. I don't think this would
be a more difficult change, looks like all we'd need is a simple
`reg.LoadGlobalsFromRegistry();` call instead of this change.
**Validation Steps Performed**
Manually launched a scratch app in both the terminal and the console. The
console launch's output mode was 0x3, and the terminal's was 0x7. 0x4 is the `
ENABLE_VIRTUAL_TERMINAL_PROCESSING` flag, which the client now had by default
in the Terminal.
ClosesGH-1965
(cherry picked from commit 1c412d4)
- Remove unwanted DECSTBM clipping (GH-2764)
The `DECSTBM` margins are meant to define the range of lines within which
certain vertical scrolling operations take place. However, we were applying
these margin restrictions in the `ScrollRegion` function, which is also used in
a number of places that shouldn't be affected by `DECSTBM`.
This includes the `ICH` and `DCH` escape sequences (which are only affected by
the horizontal margins, which we don't yet support), the
`ScrollConsoleScreenBuffer` API (which is public Console API, not meant to be
affected by the VT terminal emulation), and the `CSI 3 J` erase scrollback
extension (which isn't really scrolling as such, but uses the `ScrollRegion`
function to manipulate the scrollback buffer).
This commit moves the margin clipping out of the `ScrollRegion` function, so it
can be applied exclusively in the places that need it.
While testing, I also noticed that one of the `ScrollRegion` calls in the
`AdjustCursorPosition` function was not setting the horizontal range correctly
- the scrolling should always affect the full buffer width rather than just the
viewport width - so ...
Related work items: #23507749, #23563809, #23563819, #23563837, #23563841, #23563844
VERIFY_SUCCEEDED(TestData::TryGetValue(L"setMargins", setMargins), L"Get whether or not we should set the DECSTBM margins.");
600
603
bool checkClipped;
601
604
VERIFY_SUCCEEDED(TestData::TryGetValue(L"checkClipped", checkClipped), L"Get whether or not we should check all the options using a clipping rectangle.");
602
605
@@ -605,6 +608,13 @@ class ApiRoutinesTests
605
608
606
609
VERIFY_SUCCEEDED(si.GetTextBuffer().ResizeTraditional({ 5, 5 }), L"Make the buffer small so this doesn't take forever.");
607
610
611
+
// Tests are run both with and without the DECSTBM margins set. This should not alter
612
+
// the results, since ScrollConsoleScreenBuffer should not be affected by VT margins.
0 commit comments