Skip to content
This repository was archived by the owner on Sep 6, 2021. It is now read-only.

Commit 3ffdf0a

Browse files
committed
Merge pull request #7104 from adobe/nj/cmv4-save-as-sel
[cmv4] Preserve multiple selections when saving new document or doing save as
2 parents ef601cf + 88d9689 commit 3ffdf0a

2 files changed

Lines changed: 13 additions & 9 deletions

File tree

src/document/DocumentCommandHandlers.js

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -714,8 +714,7 @@ define(function (require, exports, module) {
714714
var editor = EditorManager.getActiveEditor();
715715
if (editor) {
716716
if (settings) {
717-
editor.setCursorPos(settings.cursorPos);
718-
editor.setSelection(settings.selection.start, settings.selection.end);
717+
editor.setSelections(settings.selections);
719718
editor.setScrollPos(settings.scrollPos.x, settings.scrollPos.y);
720719
}
721720
}
@@ -828,8 +827,7 @@ define(function (require, exports, module) {
828827
if (doc.isUntitled()) {
829828
if (doc === activeDoc) {
830829
settings = {
831-
selection: activeEditor.getSelection(),
832-
cursorPos: activeEditor.getCursorPos(),
830+
selections: activeEditor.getSelections(),
833831
scrollPos: activeEditor.getScrollPos()
834832
};
835833
}
@@ -918,8 +916,7 @@ define(function (require, exports, module) {
918916
if (activeEditor) {
919917
doc = activeEditor.document;
920918
settings = {};
921-
settings.selection = activeEditor.getSelection();
922-
settings.cursorPos = activeEditor.getCursorPos();
919+
settings.selections = activeEditor.getSelections();
923920
settings.scrollPos = activeEditor.getScrollPos();
924921
}
925922
}

test/spec/DocumentCommandHandlers-test.js

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -752,7 +752,10 @@ define(function (require, exports, module) {
752752
describe("Save As", function () {
753753
var filePath,
754754
newFilename,
755-
newFilePath;
755+
newFilePath,
756+
selections = [{start: {line: 0, ch: 1}, end: {line: 0, ch: 3}, primary: false, reversed: false},
757+
{start: {line: 0, ch: 6}, end: {line: 0, ch: 6}, primary: true, reversed: false},
758+
{start: {line: 0, ch: 9}, end: {line: 0, ch: 12}, primary: false, reversed: true}];
756759

757760
beforeEach(function () {
758761
filePath = testPath + "/test.js";
@@ -768,8 +771,10 @@ define(function (require, exports, module) {
768771
});
769772

770773
runs(function () {
771-
var currentDocument = DocumentManager.getCurrentDocument();
774+
var currentDocument = DocumentManager.getCurrentDocument(),
775+
currentEditor = EditorManager.getActiveEditor();
772776
expect(currentDocument.file.fullPath).toEqual(filePath);
777+
currentEditor.setSelections(selections);
773778
});
774779

775780
runs(function () {
@@ -782,8 +787,10 @@ define(function (require, exports, module) {
782787
});
783788

784789
runs(function () {
785-
var currentDocument = DocumentManager.getCurrentDocument();
790+
var currentDocument = DocumentManager.getCurrentDocument(),
791+
currentEditor = EditorManager.getActiveEditor();
786792
expect(currentDocument.file.fullPath).toEqual(newFilePath);
793+
expect(currentEditor.getSelections()).toEqual(selections);
787794
});
788795

789796
runs(function () {

0 commit comments

Comments
 (0)