Fix focus issues (#868)

This commit is contained in:
Rudy Huyn 2019-12-16 10:13:34 -08:00 committed by Eric Wong
parent dbddc7bc86
commit eb2fa6db9b
2 changed files with 11 additions and 6 deletions

View File

@ -97,8 +97,9 @@ void EquationInputArea::InputTextBox_Submitted(Object ^ sender, MathRichEditBoxS
return; return;
} }
if (submission->Source == EquationSubmissionSource::ENTER_KEY || if (submission->Source == EquationSubmissionSource::ENTER_KEY
(submission->Source == EquationSubmissionSource::FOCUS_LOST && submission->HasTextChanged && eq->Expression != nullptr && eq->Expression->Length() > 0)) || (submission->Source == EquationSubmissionSource::FOCUS_LOST && submission->HasTextChanged && eq->Expression != nullptr
&& eq->Expression->Length() > 0))
{ {
unsigned int index = 0; unsigned int index = 0;
if (Equations->IndexOf(eq, &index)) if (Equations->IndexOf(eq, &index))
@ -109,12 +110,15 @@ void EquationInputArea::InputTextBox_Submitted(Object ^ sender, MathRichEditBoxS
AddNewEquation(); AddNewEquation();
} }
else else
{
if (submission->Source == EquationSubmissionSource::ENTER_KEY)
{ {
auto nextEquation = Equations->GetAt(index + 1); auto nextEquation = Equations->GetAt(index + 1);
FocusEquationTextBox(nextEquation); FocusEquationTextBox(nextEquation);
} }
} }
} }
}
} }
void EquationInputArea::FocusEquationTextBox(EquationViewModel ^ equation) void EquationInputArea::FocusEquationTextBox(EquationViewModel ^ equation)
@ -192,11 +196,12 @@ void EquationInputArea::InputTextBox_Loaded(Object ^ sender, RoutedEventArgs ^ e
if (m_equationToFocus != nullptr && tb->DataContext == m_equationToFocus) if (m_equationToFocus != nullptr && tb->DataContext == m_equationToFocus)
{ {
auto copyEquationToFocus = m_equationToFocus;
m_equationToFocus = nullptr; m_equationToFocus = nullptr;
tb->FocusTextBox(); tb->FocusTextBox();
unsigned int index; unsigned int index;
if (Equations->IndexOf(m_equationToFocus, &index)) if (Equations->IndexOf(copyEquationToFocus, &index))
{ {
auto container = EquationInputList->TryGetElement(index); auto container = EquationInputList->TryGetElement(index);
if (container != nullptr) if (container != nullptr)

View File

@ -197,7 +197,7 @@ namespace GraphControl::DX
{ {
auto lineColors = m_graph->GetOptions().GetGraphColors(); auto lineColors = m_graph->GetOptions().GetGraphColors();
if (formulaId >= 0 && formulaId < lineColors.size()) if (formulaId >= 0 && static_cast<unsigned int>(formulaId) < lineColors.size())
{ {
auto dotColor = lineColors[formulaId]; auto dotColor = lineColors[formulaId];
m_nearestPointRenderer.SetColor(D2D1::ColorF(dotColor.R * 65536 + dotColor.G * 256 + dotColor.B, 1.0)); m_nearestPointRenderer.SetColor(D2D1::ColorF(dotColor.R * 65536 + dotColor.G * 256 + dotColor.B, 1.0));