From 2705bef6e987adf1836c033b74a95f7996a5a556 Mon Sep 17 00:00:00 2001 From: Stephanie Anderl <46726333+sanderl@users.noreply.github.com> Date: Thu, 2 Apr 2020 12:53:21 -0700 Subject: [PATCH] Updated the focus state when the KGF Back Button is pressed to go to the EquationEditBox for the previously analyzed function. (#1141) --- .../EquationInputArea.xaml.cpp | 17 +++++------------ .../GraphingCalculator/EquationInputArea.xaml.h | 3 ++- .../GraphingCalculator.xaml.cpp | 2 +- 3 files changed, 8 insertions(+), 14 deletions(-) diff --git a/src/Calculator/Views/GraphingCalculator/EquationInputArea.xaml.cpp b/src/Calculator/Views/GraphingCalculator/EquationInputArea.xaml.cpp index 6c300d1..61fb00e 100644 --- a/src/Calculator/Views/GraphingCalculator/EquationInputArea.xaml.cpp +++ b/src/Calculator/Views/GraphingCalculator/EquationInputArea.xaml.cpp @@ -167,24 +167,17 @@ void EquationInputArea::FocusEquationTextBox(EquationViewModel ^ equation) { return; } - auto container = EquationInputList->ContainerFromIndex(index); - if (container == nullptr) - { - return; - } - auto equationTextBox = dynamic_cast(container); - if (equationTextBox != nullptr) - { - equationTextBox->FocusTextBox(); - } - else + auto container = static_cast(EquationInputList->ContainerFromIndex(index)); + if (container != nullptr) { + container->StartBringIntoView(); + auto equationInput = VisualTree::FindDescendantByName(container, "EquationInputButton"); if (equationInput == nullptr) { return; } - equationTextBox = dynamic_cast(equationInput); + auto equationTextBox = dynamic_cast(equationInput); if (equationTextBox != nullptr) { equationTextBox->FocusTextBox(); diff --git a/src/Calculator/Views/GraphingCalculator/EquationInputArea.xaml.h b/src/Calculator/Views/GraphingCalculator/EquationInputArea.xaml.h index 3f15b4d..19c9fc0 100644 --- a/src/Calculator/Views/GraphingCalculator/EquationInputArea.xaml.h +++ b/src/Calculator/Views/GraphingCalculator/EquationInputArea.xaml.h @@ -39,6 +39,8 @@ public static Windows::UI::Xaml::Media::SolidColorBrush ^ ToSolidColorBrush(Windows::UI::Color color) { return ref new Windows::UI::Xaml::Media::SolidColorBrush(color); } + + void FocusEquationTextBox(ViewModel::EquationViewModel ^ equation); private: void OnPropertyChanged(Platform::String ^ propertyName); void OnEquationsPropertyChanged(); @@ -51,7 +53,6 @@ public void OnHighContrastChanged(Windows::UI::ViewManagement::AccessibilitySettings ^ sender, Platform::Object ^ args); void ReloadAvailableColors(bool isHighContrast, bool reassignColors); - void FocusEquationTextBox(ViewModel::EquationViewModel ^ equation); void OnColorValuesChanged(Windows::UI::ViewManagement::UISettings ^ sender, Platform::Object ^ args); void EquationTextBox_RemoveButtonClicked(Platform::Object ^ sender, Windows::UI::Xaml::RoutedEventArgs ^ e); diff --git a/src/Calculator/Views/GraphingCalculator/GraphingCalculator.xaml.cpp b/src/Calculator/Views/GraphingCalculator/GraphingCalculator.xaml.cpp index 3b9d7bb..dc09687 100644 --- a/src/Calculator/Views/GraphingCalculator/GraphingCalculator.xaml.cpp +++ b/src/Calculator/Views/GraphingCalculator/GraphingCalculator.xaml.cpp @@ -458,7 +458,7 @@ void GraphingCalculator::OnEquationKeyGraphFeaturesRequested(Object ^ sender, Eq void GraphingCalculator::OnKeyGraphFeaturesClosed(Object ^ sender, RoutedEventArgs ^ e) { IsKeyGraphFeaturesVisible = false; - ViewModel->SelectedEquation->GraphEquation->IsSelected = false; + EquationInputAreaControl->FocusEquationTextBox(ViewModel->SelectedEquation); } Visibility GraphingCalculator::ShouldDisplayPanel(bool isSmallState, bool isEquationModeActivated, bool isGraphPanel)