Index: chrome/browser/resources/md_bookmarks/folder_node.js |
diff --git a/chrome/browser/resources/md_bookmarks/folder_node.js b/chrome/browser/resources/md_bookmarks/folder_node.js |
index 94cc5e7a665fea47fdf550a04549d56e42d91e4c..68dd8fa07a3eb0deb47202a202e6d752ce47df40 100644 |
--- a/chrome/browser/resources/md_bookmarks/folder_node.js |
+++ b/chrome/browser/resources/md_bookmarks/folder_node.js |
@@ -85,11 +85,33 @@ Polymer({ |
onKeydown_: function(e) { |
var direction = 0; |
var handled = true; |
- // TODO(calamity): Handle left/right arrow keys. |
if (e.key == 'ArrowUp') { |
direction = -1; |
} else if (e.key == 'ArrowDown') { |
direction = 1; |
+ } else if (e.key == 'ArrowRight') { |
tsergeant
2017/05/05 01:31:07
These shortcuts need to flip in RTL.
calamity
2017/05/09 03:45:35
Done.
|
+ // The right arrow opens a folder if closed and goes to the first child |
+ // otherwise. |
+ if (this.hasChildFolder_()) { |
+ if (this.isClosed_) { |
+ this.dispatch( |
+ bookmarks.actions.changeFolderOpen(this.item_.id, true)); |
+ } else { |
+ direction = 1; |
+ } |
+ } |
+ } else if (e.key == 'ArrowLeft') { |
+ // The left arrow closes a folder if open and goes to the parent |
+ // otherwise. |
+ if (this.hasChildFolder_() && !this.isClosed_) { |
+ this.dispatch(bookmarks.actions.changeFolderOpen(this.item_.id, false)); |
+ } else { |
+ var parentFolderNode = this.getParentFolderNode_(); |
+ if (parentFolderNode.itemId != ROOT_NODE_ID) { |
+ parentFolderNode.selectFolder_(); |
+ parentFolderNode.getFocusTarget().focus(); |
+ } |
+ } |
} else { |
handled = false; |
} |