IDEA-86397 Delete line (Ctrl+Y) moves caret to the 1st column position

Don't restore caret position when it's not necessary
This commit is contained in:
Denis.Zhdanov
2012-05-25 13:02:40 +04:00
parent fc2a948670
commit b6d1904866
@@ -45,11 +45,15 @@ public class EditorModificationUtil {
int selectionEnd = selectionModel.getSelectionEnd();
final CaretModel caretModel = editor.getCaretModel();
final int caretOffset = caretModel.getOffset();
boolean restorePosition = caretOffset > selectionStart && caretOffset < selectionEnd;
final VisualPosition position = caretModel.getVisualPosition();
caretModel.moveToOffset(selectionStart);
selectionModel.removeSelection();
editor.getDocument().deleteString(selectionStart, selectionEnd);
caretModel.moveToVisualPosition(position); // Try to preserve visual caret position
if (restorePosition) {
caretModel.moveToVisualPosition(position); // Try to preserve visual caret position.
}
editor.getScrollingModel().scrollToCaret(ScrollType.RELATIVE);
}