Index: chrome/browser/resources/bookmark_manager/js/main.js |
diff --git a/chrome/browser/resources/bookmark_manager/js/main.js b/chrome/browser/resources/bookmark_manager/js/main.js |
index efab6e96b883df797ce046c817ccc8074953e969..20a3559905a109da018bfd4524c6593e4ce3ebb5 100644 |
--- a/chrome/browser/resources/bookmark_manager/js/main.js |
+++ b/chrome/browser/resources/bookmark_manager/js/main.js |
@@ -1029,12 +1029,17 @@ function newFolder(opt_target) { |
performGlobalUndo = null; // This can't be undone, so disable global undo. |
var parentId = computeParentFolderForNewItem(); |
- |
+ var newIndex, selectedItem = bmm.list.selectedItem; |
Bernhard Bauer
2014/12/23 11:54:36
Declare each variable on a separate line.
Deepak
2014/12/23 12:43:23
Done.
|
// Callback is called after tree and list data model updated. |
function createFolder(callback) { |
+ if (selectedItem && document.activeElement != bmm.tree && |
+ !bmm.isFolder(selectedItem)) { |
+ newIndex = bmm.list.dataModel.indexOf(selectedItem) + 1; |
+ } |
chrome.bookmarks.create({ |
title: loadTimeData.getString('new_folder_name'), |
- parentId: parentId |
+ parentId: parentId, |
+ index: newIndex |
}, callback); |
} |
@@ -1050,6 +1055,8 @@ function newFolder(opt_target) { |
function editNewFolderInList() { |
createFolder(function() { |
var index = bmm.list.dataModel.length - 1; |
+ if (newIndex && newIndex <= index) |
+ index = newIndex; |
var sm = bmm.list.selectionModel; |
sm.anchorIndex = sm.leadIndex = sm.selectedIndex = index; |
scrollIntoViewAndMakeEditable(index); |
@@ -1080,20 +1087,28 @@ function scrollIntoViewAndMakeEditable(index) { |
*/ |
function addPage() { |
var parentId = computeParentFolderForNewItem(); |
- |
+ var newIndex, selectedItem = bmm.list.selectedItem; |
function editNewBookmark() { |
+ if (selectedItem && document.activeElement != bmm.tree && |
+ !bmm.isFolder(selectedItem)) { |
+ newIndex = bmm.list.dataModel.indexOf(selectedItem) + 1; |
+ } |
+ |
var fakeNode = { |
title: '', |
url: '', |
parentId: parentId, |
+ index: newIndex, |
id: 'new' |
}; |
var dataModel = bmm.list.dataModel; |
- var length = dataModel.length; |
- dataModel.splice(length, 0, fakeNode); |
+ var index = dataModel.length; |
+ if (newIndex && newIndex <= index) |
Bernhard Bauer
2014/12/23 11:54:36
You probably want to check for (newIndex != undefi
Deepak
2014/12/23 12:43:23
I agree with you.
Changes done as suggested.
|
+ index = newIndex; |
+ dataModel.splice(index, 0, fakeNode); |
var sm = bmm.list.selectionModel; |
- sm.anchorIndex = sm.leadIndex = sm.selectedIndex = length; |
- scrollIntoViewAndMakeEditable(length); |
+ sm.anchorIndex = sm.leadIndex = sm.selectedIndex = index; |
+ scrollIntoViewAndMakeEditable(index); |
}; |
navigateTo(parentId, editNewBookmark); |