Fix focus bug in graphing mode and other small changes (#938)

* Fix some bugs

* Style fixes from prev PR
This commit is contained in:
Pepe Rivera 2020-01-31 13:45:16 -08:00 committed by GitHub
commit 6ca8f90021
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 23 additions and 6 deletions

View file

@ -185,7 +185,7 @@ void MathRichEditBox::SubmitEquation(EquationSubmissionSource source)
auto formatRequest = ref new MathRichEditBoxFormatRequest(newVal); auto formatRequest = ref new MathRichEditBoxFormatRequest(newVal);
FormatRequest(this, formatRequest); FormatRequest(this, formatRequest);
if (!formatRequest->FormattedText->IsEmpty()) if (formatRequest->FormattedText != nullptr && !formatRequest->FormattedText->IsEmpty())
{ {
newVal = formatRequest->FormattedText; newVal = formatRequest->FormattedText;
} }

View file

@ -39,8 +39,8 @@ namespace CalculatorApp
public: public:
MathRichEditBoxFormatRequest(Platform::String^ originalText) MathRichEditBoxFormatRequest(Platform::String^ originalText)
: m_OriginalText(originalText)
{ {
m_OriginalText = originalText;
} }
}; };

View file

@ -330,6 +330,9 @@ void EquationInputArea::SubmitTextbox(TextBox ^ sender)
{ {
val = validateDouble(sender->Text, variableViewModel->Value); val = validateDouble(sender->Text, variableViewModel->Value);
variableViewModel->Value = val; variableViewModel->Value = val;
// Assign back to val in case it gets changed due to min/max
val = variableViewModel->Value;
} }
else if (sender->Name == "MinTextBox") else if (sender->Name == "MinTextBox")
{ {

View file

@ -61,12 +61,12 @@ namespace CalculatorApp
void TextBoxLosingFocus(Windows::UI::Xaml::Controls::TextBox ^ textbox, Windows::UI::Xaml::Input::LosingFocusEventArgs ^ args); void TextBoxLosingFocus(Windows::UI::Xaml::Controls::TextBox ^ textbox, Windows::UI::Xaml::Input::LosingFocusEventArgs ^ args);
void TextBoxKeyDown(Windows::UI::Xaml::Controls::TextBox ^ textbox, Windows::UI::Xaml::Input::KeyRoutedEventArgs ^ e); void TextBoxKeyDown(Windows::UI::Xaml::Controls::TextBox ^ textbox, Windows::UI::Xaml::Input::KeyRoutedEventArgs ^ e);
void SubmitTextbox(Windows::UI::Xaml::Controls::TextBox ^ textbox); void SubmitTextbox(Windows::UI::Xaml::Controls::TextBox ^ textbox);
void VariableAreaTapped(Platform::Object ^ sender, Windows::UI::Xaml::Input::TappedRoutedEventArgs ^ e);
void EquationTextBox_EquationFormatRequested(Platform::Object ^ sender, CalculatorApp::Controls::MathRichEditBoxFormatRequest ^ e);
Windows::UI::ViewManagement::AccessibilitySettings ^ m_accessibilitySettings; Windows::UI::ViewManagement::AccessibilitySettings ^ m_accessibilitySettings;
int m_lastLineColorIndex; int m_lastLineColorIndex;
int m_lastFunctionLabelIndex; int m_lastFunctionLabelIndex;
ViewModel::EquationViewModel ^ m_equationToFocus; ViewModel::EquationViewModel ^ m_equationToFocus;
void VariableAreaTapped(Platform::Object ^ sender, Windows::UI::Xaml::Input::TappedRoutedEventArgs ^ e);
void EquationTextBox_EquationFormatRequested(Platform::Object ^ sender, CalculatorApp::Controls::MathRichEditBoxFormatRequest ^ e);
}; };
} }

View file

@ -587,3 +587,15 @@ void GraphingCalculator::OnEquationFormatRequested(Object ^ sender, MathRichEdit
e->FormattedText = GraphingControl->FormatMathML(e->OriginalText); e->FormattedText = GraphingControl->FormatMathML(e->OriginalText);
} }
} }
void GraphingCalculator::SetDefaultFocus()
{
if (IsSmallState)
{
SwitchModeToggleButton->Focus(::FocusState::Programmatic);
}
else
{
EquationInputAreaControl->Focus(::FocusState::Programmatic);
}
}

View file

@ -38,6 +38,8 @@ public ref class GraphingCalculator sealed : public Windows::UI::Xaml::Data::INo
static Platform::String ^ GetInfoForSwitchModeToggleButton(bool isChecked); static Platform::String ^ GetInfoForSwitchModeToggleButton(bool isChecked);
static Windows::UI::Xaml::Visibility ManageEditVariablesButtonVisibility(unsigned int numberOfVariables); static Windows::UI::Xaml::Visibility ManageEditVariablesButtonVisibility(unsigned int numberOfVariables);
static Platform::String ^ GetTracingLegend(Platform::IBox<bool> ^ isTracing); static Platform::String ^ GetTracingLegend(Platform::IBox<bool> ^ isTracing);
void SetDefaultFocus();
private: private:
void GraphingCalculator_DataContextChanged(Windows::UI::Xaml::FrameworkElement ^ sender, Windows::UI::Xaml::DataContextChangedEventArgs ^ args); void GraphingCalculator_DataContextChanged(Windows::UI::Xaml::FrameworkElement ^ sender, Windows::UI::Xaml::DataContextChangedEventArgs ^ args);

View file

@ -297,7 +297,7 @@ void MainPage::SetDefaultFocus()
} }
if (m_graphingCalculator != nullptr && m_graphingCalculator->Visibility == ::Visibility::Visible) if (m_graphingCalculator != nullptr && m_graphingCalculator->Visibility == ::Visibility::Visible)
{ {
FocusManager::TryFocusAsync(m_graphingCalculator, ::FocusState::Programmatic); m_graphingCalculator->SetDefaultFocus();
} }
if (m_converter != nullptr && m_converter->Visibility == ::Visibility::Visible) if (m_converter != nullptr && m_converter->Visibility == ::Visibility::Visible)
{ {