Index: ui/file_manager/file_manager/foreground/js/directory_tree.js |
diff --git a/ui/file_manager/file_manager/foreground/js/directory_tree.js b/ui/file_manager/file_manager/foreground/js/directory_tree.js |
index aa87168bfdaa34a16119ec825d9c18e96237698a..0f4c8627f0851dc55eb2ee180759aa3612efab97 100644 |
--- a/ui/file_manager/file_manager/foreground/js/directory_tree.js |
+++ b/ui/file_manager/file_manager/foreground/js/directory_tree.js |
@@ -545,7 +545,8 @@ VolumeItem.prototype.selectByEntry = function(entry) { |
this.searchAndSelectByEntry(entry); |
return; |
} |
- if (util.isSameEntry(entry, this.entry)) |
+ if (util.isSameEntry(this.entry, entry) || |
+ util.isDescendantEntry(this.entry, entry)) |
this.selected = true; |
}; |
@@ -933,12 +934,18 @@ DirectoryTree.prototype.searchAndSelectByEntry = function(entry) { |
continue; |
if (util.isSameEntry(item.entry, entry)) { |
+ this.dontHandleChangeEvent_ = true; |
item.selectByEntry(entry); |
+ this.dontHandleChangeEvent_ = false; |
return true; |
} |
} |
// Otherwise, search whole tree. |
- return DirectoryItemTreeBaseMethods.searchAndSelectByEntry.call(this, entry); |
+ this.dontHandleChangeEvent_ = true; |
+ var found = DirectoryItemTreeBaseMethods.searchAndSelectByEntry.call( |
+ this, entry); |
+ this.dontHandleChangeEvent_ = false; |
+ return found; |
}; |
/** |
@@ -967,7 +974,7 @@ DirectoryTree.prototype.decorate = function( |
// Add a handler for directory change. |
this.addEventListener('change', function() { |
- if (this.selectedItem) |
+ if (this.selectedItem && !this.dontHandleChangeEvent_) |
this.selectedItem.activate(); |
}.bind(this)); |