diff --git a/src/cascadia/TerminalSettingsEditor/MainPage.cpp b/src/cascadia/TerminalSettingsEditor/MainPage.cpp index 5daf396b72..054c8480cc 100644 --- a/src/cascadia/TerminalSettingsEditor/MainPage.cpp +++ b/src/cascadia/TerminalSettingsEditor/MainPage.cpp @@ -38,6 +38,7 @@ using namespace winrt::Windows::System; using namespace winrt::Windows::UI::Xaml::Controls; using namespace winrt::Windows::Foundation::Collections; +static const std::wstring_view openJsonTag{ L"OpenJson_Nav" }; static const std::wstring_view launchTag{ L"Launch_Nav" }; static const std::wstring_view interactionTag{ L"Interaction_Nav" }; static const std::wstring_view renderingTag{ L"Rendering_Nav" }; @@ -324,6 +325,17 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation if (const auto navString = clickedItemContainer.Tag().try_as()) { + if (*navString == openJsonTag) + { + const auto window = CoreWindow::GetForCurrentThread(); + const auto rAltState = window.GetKeyState(VirtualKey::RightMenu); + const auto lAltState = window.GetKeyState(VirtualKey::LeftMenu); + const auto altPressed = WI_IsFlagSet(lAltState, CoreVirtualKeyStates::Down) || + WI_IsFlagSet(rAltState, CoreVirtualKeyStates::Down); + const auto target = altPressed ? SettingsTarget::DefaultsFile : SettingsTarget::SettingsFile; + OpenJson.raise(nullptr, target); + return; + } _Navigate(*navString, BreadcrumbSubPage::None); } else if (const auto profile = clickedItemContainer.Tag().try_as()) @@ -575,27 +587,6 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation } } - void MainPage::OpenJsonTapped(const IInspectable& /*sender*/, const Windows::UI::Xaml::Input::TappedRoutedEventArgs& /*args*/) - { - const auto window = CoreWindow::GetForCurrentThread(); - const auto rAltState = window.GetKeyState(VirtualKey::RightMenu); - const auto lAltState = window.GetKeyState(VirtualKey::LeftMenu); - const auto altPressed = WI_IsFlagSet(lAltState, CoreVirtualKeyStates::Down) || - WI_IsFlagSet(rAltState, CoreVirtualKeyStates::Down); - - const auto target = altPressed ? SettingsTarget::DefaultsFile : SettingsTarget::SettingsFile; - OpenJson.raise(nullptr, target); - } - - void MainPage::OpenJsonKeyDown(const IInspectable& /*sender*/, const Windows::UI::Xaml::Input::KeyRoutedEventArgs& args) - { - if (args.Key() == VirtualKey::Enter || args.Key() == VirtualKey::Space) - { - const auto target = args.KeyStatus().IsMenuKeyDown ? SettingsTarget::DefaultsFile : SettingsTarget::SettingsFile; - OpenJson.raise(nullptr, target); - } - } - void MainPage::SaveButton_Click(const IInspectable& /*sender*/, const RoutedEventArgs& /*args*/) { _settingsClone.LogSettingChanges(false); diff --git a/src/cascadia/TerminalSettingsEditor/MainPage.h b/src/cascadia/TerminalSettingsEditor/MainPage.h index 81724effb1..582f8813b1 100644 --- a/src/cascadia/TerminalSettingsEditor/MainPage.h +++ b/src/cascadia/TerminalSettingsEditor/MainPage.h @@ -30,8 +30,6 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation void UpdateSettings(const Model::CascadiaSettings& settings); - void OpenJsonKeyDown(const Windows::Foundation::IInspectable& sender, const Windows::UI::Xaml::Input::KeyRoutedEventArgs& args); - void OpenJsonTapped(const Windows::Foundation::IInspectable& sender, const Windows::UI::Xaml::Input::TappedRoutedEventArgs& args); void SettingsNav_Loaded(const Windows::Foundation::IInspectable& sender, const Windows::UI::Xaml::RoutedEventArgs& args); void SettingsNav_ItemInvoked(const Microsoft::UI::Xaml::Controls::NavigationView& sender, const Microsoft::UI::Xaml::Controls::NavigationViewItemInvokedEventArgs& args); void SaveButton_Click(const Windows::Foundation::IInspectable& sender, const Windows::UI::Xaml::RoutedEventArgs& args); diff --git a/src/cascadia/TerminalSettingsEditor/MainPage.xaml b/src/cascadia/TerminalSettingsEditor/MainPage.xaml index 3a0773062a..c6d36e8f20 100644 --- a/src/cascadia/TerminalSettingsEditor/MainPage.xaml +++ b/src/cascadia/TerminalSettingsEditor/MainPage.xaml @@ -171,8 +171,8 @@ + SelectsOnInvoked="False" + Tag="OpenJson_Nav">