Fix sort with column key selection that appears after tab characters

Fix #9682, close #9683
This commit is contained in:
Scott Sumner 2021-03-22 16:17:42 -04:00 committed by Don HO
parent c29240d78a
commit 09d6241686

View File

@ -589,15 +589,16 @@ void Notepad_plus::command(int id)
{ {
if (_pEditView->execute(SCI_SELECTIONISRECTANGLE)) if (_pEditView->execute(SCI_SELECTIONISRECTANGLE))
{ {
ColumnModeInfos colInfos = _pEditView->getColumnModeSelectInfo(); size_t rectSelAnchor = _pEditView->execute(SCI_GETRECTANGULARSELECTIONANCHOR);
int leftPos = colInfos.begin()->_selLpos; size_t rectSelCaret = _pEditView->execute(SCI_GETRECTANGULARSELECTIONCARET);
int rightPos = colInfos.rbegin()->_selRpos; size_t anchorLine = _pEditView->execute(SCI_LINEFROMPOSITION, rectSelAnchor);
int startPos = min(leftPos, rightPos); size_t caretLine = _pEditView->execute(SCI_LINEFROMPOSITION, rectSelCaret);
int endPos = max(leftPos, rightPos); fromLine = min(anchorLine, caretLine);
fromLine = _pEditView->execute(SCI_LINEFROMPOSITION, startPos); toLine = max(anchorLine, caretLine);
toLine = _pEditView->execute(SCI_LINEFROMPOSITION, endPos); size_t anchorLineOffset = rectSelAnchor - _pEditView->execute(SCI_POSITIONFROMLINE, anchorLine) + _pEditView->execute(SCI_GETRECTANGULARSELECTIONANCHORVIRTUALSPACE);
fromColumn = _pEditView->execute(SCI_GETCOLUMN, leftPos); size_t caretLineOffset = rectSelCaret - _pEditView->execute(SCI_POSITIONFROMLINE, caretLine) + _pEditView->execute(SCI_GETRECTANGULARSELECTIONCARETVIRTUALSPACE);
toColumn = _pEditView->execute(SCI_GETCOLUMN, rightPos); fromColumn = min(anchorLineOffset, caretLineOffset);
toColumn = max(anchorLineOffset, caretLineOffset);
} }
else else
{ {