From 1cc383f86572cf100ac7b49d980394335aa4f31f Mon Sep 17 00:00:00 2001 From: kovdu Date: Mon, 14 Jun 2021 19:20:30 +0200 Subject: [PATCH] Cancel the preview of nested commands when moving back on the stack. (#10392) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary of the Pull Request Immediately cancelling the preview when the user is navigating back from a nested command. ## References ## PR Checklist * [x] Closes #10165 * [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 ## Detailed Description of the Pull Request / Additional comments Basically 2 changes are done here: - Allow the click handler to run for the back button when the button has focus and user hits the enter key (similarly as hitting space now). - Now immediately cancelling the preview when the user is navigating back. Felt nicer to do it immediately at that point then keeping the preview active until the user hits cancel to close the palette. So the preview is already cancelled at step **5** instead of 6 as mentioned in the reproduction steps here https://github.com/microsoft/terminal/issues/10165#issue-899838383. But of course let me know if you're not agreeing here 😀 . ## Validation Steps Performed - Open 'Color Scheme' and verified preview is still working fine when selecting different schemes. - After tabbing back to the Back button verified that when hitting enter or space the preview is cancelled and the original color scheme is being used again. - Then after going back to 'Color Scheme' previews are still working ok. - After hitting Enter on one of the Color Schemes the scheme still becomes active as before. --- src/cascadia/TerminalApp/CommandPalette.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/cascadia/TerminalApp/CommandPalette.cpp b/src/cascadia/TerminalApp/CommandPalette.cpp index 5ceaa978d7a..5ed45317ed5 100644 --- a/src/cascadia/TerminalApp/CommandPalette.cpp +++ b/src/cascadia/TerminalApp/CommandPalette.cpp @@ -14,6 +14,7 @@ using namespace winrt; using namespace winrt::TerminalApp; using namespace winrt::Windows::UI::Core; using namespace winrt::Windows::UI::Xaml; +using namespace winrt::Windows::UI::Xaml::Controls; using namespace winrt::Windows::System; using namespace winrt::Windows::Foundation; using namespace winrt::Windows::Foundation::Collections; @@ -317,6 +318,13 @@ namespace winrt::TerminalApp::implementation } else if (key == VirtualKey::Enter) { + if (const auto& button = e.OriginalSource().try_as