From a2e854905268210f2a133b1165611a52c3e5980a Mon Sep 17 00:00:00 2001 From: Artyom Shalkhakov Date: Fri, 21 Feb 2025 00:30:58 -0700 Subject: [PATCH] A fix for a fix. - tab character is actually 3 'ordinary' characters if it's at end of line, and 4 elsewhere --- neo/libs/ImGuiColorTextEdit/TextEditor.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/neo/libs/ImGuiColorTextEdit/TextEditor.cpp b/neo/libs/ImGuiColorTextEdit/TextEditor.cpp index 2beb3b33..ade81a0a 100644 --- a/neo/libs/ImGuiColorTextEdit/TextEditor.cpp +++ b/neo/libs/ImGuiColorTextEdit/TextEditor.cpp @@ -2188,8 +2188,16 @@ void TextEditor::Backspace() u.mRemovedStart = u.mRemovedEnd = GetActualCursorCoordinates(); if (line[cindex].mChar == '\t') { - u.mRemovedStart.mColumn -= mTabSize; - mState.mCursorPosition.mColumn -= mTabSize; + if (pos.mColumn == GetLineMaxColumn(pos.mLine)) + { + u.mRemovedStart.mColumn -= mTabSize - 1; + mState.mCursorPosition.mColumn -= mTabSize - 1; + } + else + { + u.mRemovedStart.mColumn -= mTabSize; + mState.mCursorPosition.mColumn -= mTabSize; + } } else {