diff --git a/CSharpMath.Editor.Tests/MathKeyboardTests.cs b/CSharpMath.Editor.Tests/MathKeyboardTests.cs index d1580c51d..9c1c1ec3c 100644 --- a/CSharpMath.Editor.Tests/MathKeyboardTests.cs +++ b/CSharpMath.Editor.Tests/MathKeyboardTests.cs @@ -178,5 +178,8 @@ public void Return(params K[] inputs) => T(@"1^3_2", K.D1, K.D4, K.Power, K.D3, K.Left, K.Left, K.Subscript, K.D2, K.Left, K.Left, K.Left, K.Left, K.Backspace) ] public void LeftRightBackspace(string latex, params K[] inputs) => Test(latex, inputs); + + [Theory, T(@"□_■", K.Subscript)] + public void SubscriptWorksAtBeginningOfLine(string latex, params K[] inputs) => Test(latex, inputs); } } \ No newline at end of file diff --git a/CSharpMath.Editor/Keyboards/MathKeyboard.cs b/CSharpMath.Editor/Keyboards/MathKeyboard.cs index 85ddefce9..b85532cc2 100644 --- a/CSharpMath.Editor/Keyboards/MathKeyboard.cs +++ b/CSharpMath.Editor/Keyboards/MathKeyboard.cs @@ -100,7 +100,7 @@ void HandleScriptButton(bool isSuperScript) { if (_insertionIndex.AtBeginningOfLine) { // Create an empty atom and move the insertion index up. var emptyAtom = MathAtoms.Placeholder; - emptyAtom.Superscript = MathAtoms.PlaceholderList; + SetScript(emptyAtom, MathAtoms.PlaceholderList); MathList.InsertAndAdvance(ref _insertionIndex, emptyAtom, subIndexType); } else { var prevAtom = MathList.AtomAt(_insertionIndex.Previous);