<p dir="auto">Here is the feedback link I filed:<br>
<a href="https://aka.ms/AA62vzv" rel="nofollow">Feedback</a></p>
<h1 dir="auto">Environment</h1>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="Windows version 10.0.18970.0.
Latest Windows Terminal build (either the available bits or locally built.)"><pre lang="none" class="notranslate"><code class="notranslate">Windows version 10.0.18970.0.
Latest Windows Terminal build (either the available bits or locally built.)
</code></pre></div>
<h1 dir="auto">Steps to reproduce</h1>
<p dir="auto">This is the same repro as issue <a href="https://github.com/microsoft/terminal/issues/1360" data-hovercard-type="issue" data-hovercard-url="/microsoft/terminal/issues/1360/hovercard">1360</a>, which I was trying to reproduce and hit this render-related crash instead:</p>
<p dir="auto">Install <a href="https://github.com/BurntSushi/ripgrep">ripgrep</a><br>
Open wt (Windows Terminal), running PowerShell.<br>
Run the following from the root of a large drive<br>
<code class="notranslate">while ($true) { rg -i "foo" }</code></p>
<h1 dir="auto">Expected behavior</h1>
<p dir="auto">The terminal continually runs ripgrep against all files on the drive. It does not crash.</p>
<h1 dir="auto">Actual behavior</h1>
<p dir="auto">Eventually the process will crash. If running a debug build, you will get an Assert dialog (Abort, Retry, Ignore) and if you attach a debugger and press Retry you will see the crash is in renderer.cpp at line 642:</p>
<blockquote>
<p dir="auto">STACK_TEXT:<br>
00000005<code class="notranslate">8cefd950 00007ffe</code>d69d4f99 KERNELBASE!RaiseException+0x69<br>
00000005<code class="notranslate">8cefda30 00007ffe</code>9f018337 VCRUNTIME140D!_CxxThrowException+0x137<br>
00000005<code class="notranslate">8cefdae0 00007ffe</code>4181ec63 TerminalControl!wil::details::ThrowResultExceptionInternal+0x53<br>
00000005<code class="notranslate">8cefdbe0 00007ffe</code>4181ebe9 TerminalControl!wil::ThrowResultException+0x49<br>
00000005<code class="notranslate">8cefdc20 00007ffe</code>4181cd85 TerminalControl!wil::details::ReportFailure+0x1e5<br>
00000005<code class="notranslate">8ceff1d0 00007ffe</code>4181d131 TerminalControl!wil::details::ReportFailure_Hr+0x91<br>
00000005<code class="notranslate">8ceff230 00007ffe</code>41827084 TerminalControl!wil::details::in1diag5::_Throw_Hr+0x74<br>
00000005<code class="notranslate">8ceff280 00007ffe</code>418a6e59 TerminalControl!wil::details::in1diag5::Throw_IfFailed+0x69<br>
00000005<code class="notranslate">8ceff2c0 00007ffe</code>4193ea77 TerminalControl!Microsoft::Console::Render::Renderer::_PaintBufferOutputHelper+0x3f7<br>
00000005<code class="notranslate">8ceff4b0 00007ffe</code>4193e5f4 TerminalControl!Microsoft::Console::Render::Renderer::_PaintBufferOutput+0x394<br>
00000005<code class="notranslate">8ceff750 00007ffe</code>4193dd57 TerminalControl!Microsoft::Console::Render::Renderer::_PaintFrameForEngine+0x487<br>
00000005<code class="notranslate">8ceff8c0 00007ffe</code>4193bf95 TerminalControl!Microsoft::Console::Render::Renderer::PaintFrame+0xf5<br>
00000005<code class="notranslate">8ceff980 00007ffe</code>4193b84a TerminalControl!Microsoft::Console::Render::RenderThread::_ThreadProc+0x8a<br>
00000005<code class="notranslate">8ceff9c0 00007ffe</code>4193b7a6 TerminalControl!Microsoft::Console::Render::RenderThread::s_ThreadProc+0x46<br>
00000005<code class="notranslate">8ceffa00 00007ffe</code>d82c7034 KERNEL32!BaseThreadInitThunk+0x14<br>
00000005<code class="notranslate">8ceffa30 00007ffe</code>d8ddb1b1 ntdll!RtlUserThreadStart+0x21</p>
</blockquote>
<blockquote>
<p dir="auto">FAULTING_SOURCE_FILE:  E:\src\git\Terminal\src\renderer\base\renderer.cpp<br>
FAULTING_SOURCE_LINE_NUMBER:  642<br>
SYMBOL_NAME:  TerminalControl!Microsoft::Console::Render::Renderer::_PaintBufferOutputHelper+3f7</p>
</blockquote>
<h1 dir="auto">Environment</h1>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="Windows build number: 10.0.18362.356
Windows Terminal version: 0.4.2382.0

WSL Ubuntu 18.04"><pre lang="none" class="notranslate"><code class="notranslate">Windows build number: 10.0.18362.356
Windows Terminal version: 0.4.2382.0

WSL Ubuntu 18.04
</code></pre></div>
<h1 dir="auto">Steps to reproduce</h1>
<p dir="auto">Run the following app using node.js after doing <code class="notranslate">npm i blessed</code></p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="var blessed = require('blessed');

var screen = blessed.screen({
    smartCSR: true
});

screen.title = 'my window title';

var box = blessed.box({
    top: 'center',
    left: 'center',
    width: '50%',
    height: '50%',
    content: 'Hello {bold}world{/bold}!',
    tags: true,
    border: {
        type: 'line'
    },
    style: {
        fg: 'white',
        bg: 'magenta',
        border: {
            fg: '#f0f0f0'
        },
        hover: {
            bg: 'green'
        }
    }
});

box.on('click', function (data) {
    box.setContent('{center}Some different {red-fg}content{/red-fg}.{/center}');
    screen.render();
});

screen.key(['escape', 'q', 'C-c'], function (ch, key) {
    return process.exit(0);
});

box.focus();
screen.append(box);
screen.render();"><pre class="notranslate"><span class="pl-k">var</span> <span class="pl-s1">blessed</span> <span class="pl-c1">=</span> <span class="pl-en">require</span><span class="pl-kos">(</span><span class="pl-s">'blessed'</span><span class="pl-kos">)</span><span class="pl-kos">;</span>

<span class="pl-k">var</span> <span class="pl-s1">screen</span> <span class="pl-c1">=</span> <span class="pl-s1">blessed</span><span class="pl-kos">.</span><span class="pl-en">screen</span><span class="pl-kos">(</span><span class="pl-kos">{</span>
    <span class="pl-c1">smartCSR</span>: <span class="pl-c1">true</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span>

<span class="pl-s1">screen</span><span class="pl-kos">.</span><span class="pl-c1">title</span> <span class="pl-c1">=</span> <span class="pl-s">'my window title'</span><span class="pl-kos">;</span>

<span class="pl-k">var</span> <span class="pl-s1">box</span> <span class="pl-c1">=</span> <span class="pl-s1">blessed</span><span class="pl-kos">.</span><span class="pl-en">box</span><span class="pl-kos">(</span><span class="pl-kos">{</span>
    <span class="pl-c1">top</span>: <span class="pl-s">'center'</span><span class="pl-kos">,</span>
    <span class="pl-c1">left</span>: <span class="pl-s">'center'</span><span class="pl-kos">,</span>
    <span class="pl-c1">width</span>: <span class="pl-s">'50%'</span><span class="pl-kos">,</span>
    <span class="pl-c1">height</span>: <span class="pl-s">'50%'</span><span class="pl-kos">,</span>
    <span class="pl-c1">content</span>: <span class="pl-s">'Hello {bold}world{/bold}!'</span><span class="pl-kos">,</span>
    <span class="pl-c1">tags</span>: <span class="pl-c1">true</span><span class="pl-kos">,</span>
    <span class="pl-c1">border</span>: <span class="pl-kos">{</span>
        <span class="pl-c1">type</span>: <span class="pl-s">'line'</span>
    <span class="pl-kos">}</span><span class="pl-kos">,</span>
    <span class="pl-c1">style</span>: <span class="pl-kos">{</span>
        <span class="pl-c1">fg</span>: <span class="pl-s">'white'</span><span class="pl-kos">,</span>
        <span class="pl-c1">bg</span>: <span class="pl-s">'magenta'</span><span class="pl-kos">,</span>
        <span class="pl-c1">border</span>: <span class="pl-kos">{</span>
            <span class="pl-c1">fg</span>: <span class="pl-s">'#f0f0f0'</span>
        <span class="pl-kos">}</span><span class="pl-kos">,</span>
        <span class="pl-c1">hover</span>: <span class="pl-kos">{</span>
            <span class="pl-c1">bg</span>: <span class="pl-s">'green'</span>
        <span class="pl-kos">}</span>
    <span class="pl-kos">}</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span>

<span class="pl-s1">box</span><span class="pl-kos">.</span><span class="pl-en">on</span><span class="pl-kos">(</span><span class="pl-s">'click'</span><span class="pl-kos">,</span> <span class="pl-k">function</span> <span class="pl-kos">(</span><span class="pl-s1">data</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
    <span class="pl-s1">box</span><span class="pl-kos">.</span><span class="pl-en">setContent</span><span class="pl-kos">(</span><span class="pl-s">'{center}Some different {red-fg}content{/red-fg}.{/center}'</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
    <span class="pl-s1">screen</span><span class="pl-kos">.</span><span class="pl-en">render</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span>

<span class="pl-s1">screen</span><span class="pl-kos">.</span><span class="pl-en">key</span><span class="pl-kos">(</span><span class="pl-kos">[</span><span class="pl-s">'escape'</span><span class="pl-kos">,</span> <span class="pl-s">'q'</span><span class="pl-kos">,</span> <span class="pl-s">'C-c'</span><span class="pl-kos">]</span><span class="pl-kos">,</span> <span class="pl-k">function</span> <span class="pl-kos">(</span><span class="pl-s1">ch</span><span class="pl-kos">,</span> <span class="pl-s1">key</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
    <span class="pl-k">return</span> <span class="pl-s1">process</span><span class="pl-kos">.</span><span class="pl-en">exit</span><span class="pl-kos">(</span><span class="pl-c1">0</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span>

<span class="pl-s1">box</span><span class="pl-kos">.</span><span class="pl-en">focus</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-s1">screen</span><span class="pl-kos">.</span><span class="pl-en">append</span><span class="pl-kos">(</span><span class="pl-s1">box</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-s1">screen</span><span class="pl-kos">.</span><span class="pl-en">render</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div>
<h1 dir="auto">Expected behavior</h1>
<p dir="auto">When hovering, the mouse pointer position should be relayed to WSL and in return to the blessed application.<br>
When clicking, the mouse pointer event should be relayed to WSL and in return to the blessed application.</p>
<h1 dir="auto">Actual behavior</h1>
<p dir="auto">When hovering with the mouse pointer, the box doesn't change color as it should.<br>
When clicking the box, the content is not changed.</p>
<p dir="auto">This behaviour works on WSL (Win+R + <code class="notranslate">wsl.exe -d Ubuntu-18.04</code>)</p>
<p dir="auto">Here's a gif with raw WSL and Windows Terminal running WSL side by side that compares the behaviour<br>
<a target="_blank" rel="noopener noreferrer nofollow" href="https://user-images.githubusercontent.com/17045274/64737200-ad6f3080-d4c2-11e9-9e8e-249801978099.gif"><img src="https://user-images.githubusercontent.com/17045274/64737200-ad6f3080-d4c2-11e9-9e8e-249801978099.gif" alt="7FTS1bQfWm" data-animated-image="" style="max-width: 100%;"></a></p>