@@ -2355,10 +2355,17 @@ TextEditor::Palette TextEditor::defaultPalette = TextEditor::GetDarkPalette();
23552355//
23562356
23572357TextEditor::Coordinate TextEditor::Cursor::adjustCoordinateForInsert (Coordinate coordinate, Coordinate insertStart, Coordinate insertEnd) {
2358- coordinate.line += insertEnd.line - insertStart.line ;
2358+ if (insertStart.line == insertEnd.line ) {
2359+ if (coordinate.line == insertEnd.line ) {
2360+ coordinate.column += insertEnd.column - insertStart.column ;
2361+ }
2362+
2363+ } else {
2364+ if (coordinate.line == insertStart.line ) {
2365+ coordinate.column += insertEnd.column - insertStart.column ;
2366+ }
23592367
2360- if (end.line == coordinate.line ) {
2361- coordinate.column += insertEnd.column - insertStart.column ;
2368+ coordinate.line += insertEnd.line - insertStart.line ;
23622369 }
23632370
23642371 return coordinate;
@@ -2380,10 +2387,17 @@ void TextEditor::Cursor::adjustForInsert(Coordinate insertStart, Coordinate inse
23802387//
23812388
23822389TextEditor::Coordinate TextEditor::Cursor::adjustCoordinateForDelete (Coordinate coordinate, Coordinate deleteStart, Coordinate deleteEnd) {
2383- coordinate.line -= deleteEnd.line - deleteStart.line ;
2390+ if (deleteStart.line == deleteEnd.line ) {
2391+ if (coordinate.line == deleteEnd.line ) {
2392+ coordinate.column -= deleteEnd.column - deleteStart.column ;
2393+ }
2394+
2395+ } else {
2396+ coordinate.line -= deleteEnd.line - deleteStart.line ;
23842397
2385- if (deleteEnd.line == coordinate.line ) {
2386- coordinate.column -= deleteEnd.column - deleteStart.column ;
2398+ if (coordinate.line == deleteEnd.line ) {
2399+ coordinate.column -= deleteEnd.column ;
2400+ }
23872401 }
23882402
23892403 return coordinate;
0 commit comments