Fix focus issues (#868)
This commit is contained in:
parent
dbddc7bc86
commit
eb2fa6db9b
@ -97,8 +97,9 @@ void EquationInputArea::InputTextBox_Submitted(Object ^ sender, MathRichEditBoxS
|
||||
return;
|
||||
}
|
||||
|
||||
if (submission->Source == EquationSubmissionSource::ENTER_KEY ||
|
||||
(submission->Source == EquationSubmissionSource::FOCUS_LOST && submission->HasTextChanged && eq->Expression != nullptr && eq->Expression->Length() > 0))
|
||||
if (submission->Source == EquationSubmissionSource::ENTER_KEY
|
||||
|| (submission->Source == EquationSubmissionSource::FOCUS_LOST && submission->HasTextChanged && eq->Expression != nullptr
|
||||
&& eq->Expression->Length() > 0))
|
||||
{
|
||||
unsigned int index = 0;
|
||||
if (Equations->IndexOf(eq, &index))
|
||||
@ -110,8 +111,11 @@ void EquationInputArea::InputTextBox_Submitted(Object ^ sender, MathRichEditBoxS
|
||||
}
|
||||
else
|
||||
{
|
||||
auto nextEquation = Equations->GetAt(index + 1);
|
||||
FocusEquationTextBox(nextEquation);
|
||||
if (submission->Source == EquationSubmissionSource::ENTER_KEY)
|
||||
{
|
||||
auto nextEquation = Equations->GetAt(index + 1);
|
||||
FocusEquationTextBox(nextEquation);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -192,11 +196,12 @@ void EquationInputArea::InputTextBox_Loaded(Object ^ sender, RoutedEventArgs ^ e
|
||||
|
||||
if (m_equationToFocus != nullptr && tb->DataContext == m_equationToFocus)
|
||||
{
|
||||
auto copyEquationToFocus = m_equationToFocus;
|
||||
m_equationToFocus = nullptr;
|
||||
tb->FocusTextBox();
|
||||
|
||||
unsigned int index;
|
||||
if (Equations->IndexOf(m_equationToFocus, &index))
|
||||
if (Equations->IndexOf(copyEquationToFocus, &index))
|
||||
{
|
||||
auto container = EquationInputList->TryGetElement(index);
|
||||
if (container != nullptr)
|
||||
|
@ -197,7 +197,7 @@ namespace GraphControl::DX
|
||||
{
|
||||
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];
|
||||
m_nearestPointRenderer.SetColor(D2D1::ColorF(dotColor.R * 65536 + dotColor.G * 256 + dotColor.B, 1.0));
|
||||
|
Loading…
Reference in New Issue
Block a user