From a74c37bbcd699ce2cd90bb5d81412663a6236fcc Mon Sep 17 00:00:00 2001 From: Mike Griese Date: Fri, 5 Nov 2021 14:26:59 -0500 Subject: [PATCH] Don't crash if we fail to BeginBufferedPaint (#11674) Fixes MSFT:34673647, at least I'm pretty sure. That's only ever hit a few times externally, and internally it's hitting a lot on 1.9.1942 builds, which doesn't really make any sense. --- src/cascadia/WindowsTerminal/NonClientIslandWindow.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/cascadia/WindowsTerminal/NonClientIslandWindow.cpp b/src/cascadia/WindowsTerminal/NonClientIslandWindow.cpp index 60dd263a2..7eee80e77 100644 --- a/src/cascadia/WindowsTerminal/NonClientIslandWindow.cpp +++ b/src/cascadia/WindowsTerminal/NonClientIslandWindow.cpp @@ -843,7 +843,11 @@ void NonClientIslandWindow::_UpdateFrameMargins() const noexcept HPAINTBUFFER buf = BeginBufferedPaint(hdc.get(), &rcRest, BPBF_TOPDOWNDIB, ¶ms, &opaqueDc); if (!buf || !opaqueDc) { - winrt::throw_last_error(); + // MSFT:34673647 - BeginBufferedPaint can fail, but it probably + // shouldn't bring the whole Terminal down with it. So don't + // throw_last_error here. + LOG_LAST_ERROR(); + return 0; } ::FillRect(opaqueDc, &rcRest, _backgroundBrush.get());