2
0
Эх сурвалжийг харах

Keep selection when moving multiple lines

Leonardo Jeanteur 2 жил өмнө
parent
commit
f6bd53d231

+ 3 - 0
hide/comp/cdb/Editor.hx

@@ -1516,11 +1516,14 @@ class Editor extends Component {
 	function moveLines(lines : Array<Line>, delta : Int) {
 		if( lines.length == 0 || !lines[0].table.canInsert() || delta == 0 )
 			return;
+		var selDiff: Null<Int> = cursor.select == null ? null : cursor.select.y - cursor.y;
 		beginChanges();
 		lines.sort((a, b) -> { return (a.index - b.index) * delta * -1; });
 		for( l in lines ) {
 			moveLine(l, delta);
 		}
+		if (selDiff != null && hxd.Math.iabs(selDiff) == lines.length - 1)
+			cursor.set(cursor.table, cursor.x, cursor.y, {x: cursor.x, y: cursor.y + selDiff});
 		endChanges();
 	}