Chromium Code Reviews| Index: chrome/browser/resources/options/deletable_item_list.js |
| diff --git a/chrome/browser/resources/options/deletable_item_list.js b/chrome/browser/resources/options/deletable_item_list.js |
| index 5d5b35be3f090da95480ebaf5b75cbc33dde3570..37b9542a1615e14af94ddf2884561e2822ed5975 100644 |
| --- a/chrome/browser/resources/options/deletable_item_list.js |
| +++ b/chrome/browser/resources/options/deletable_item_list.js |
| @@ -107,6 +107,7 @@ cr.define('options', function() { |
| decorate: function() { |
| List.prototype.decorate.call(this); |
| this.addEventListener('click', this.handleClick_); |
| + this.addEventListener('keydown', this.handleKeyDown_); |
| }, |
| /** |
| @@ -130,15 +131,43 @@ cr.define('options', function() { |
| if (selected.indexOf(idx) == -1) { |
| this.deleteItemAtIndex(idx); |
| } else { |
| - // Reverse through the list of selected indexes to maintain the |
| - // correct index values after deletion. |
| - for (var j = selected.length - 1; j >= 0; j--) |
| - this.deleteItemAtIndex(selected[j]); |
| + this.deleteSelectedItems_(); |
| } |
| } |
| }, |
| /** |
| + * Callback for keydown events. |
| + * @param {Event} e The keydown event object. |
| + * @private |
| + */ |
| + handleKeyDown_: function(e) { |
| + // Map delete (and backspapce on Mac) to item deletion (unless focus is |
|
arv (Not doing code reviews)
2011/01/18 19:56:24
typo
stuartmorgan
2011/01/18 21:55:54
Oops, I'll fix that next time I'm in the file.
|
| + // in an input field, where it's intended for text editing). |
| + if ((e.keyCode == 46 || (e.keyCode == 8 && cr.isMac)) && |
|
arv (Not doing code reviews)
2011/01/18 19:56:24
I thought Mac used Command-Backspace (Meta-Backspa
stuartmorgan
2011/01/18 21:55:54
For menu items, yes. For interacting with tables a
|
| + e.target.tagName != 'INPUT') { |
| + this.deleteSelectedItems_(); |
| + // Prevent the browser from going back. |
| + e.preventDefault(); |
| + } |
| + }, |
| + |
| + /** |
| + * Deletes all the currently selected items that are deletable. |
| + * @private |
| + */ |
| + deleteSelectedItems_: function() { |
| + var selected = this.selectionModel.selectedIndexes; |
| + // Reverse through the list of selected indexes to maintain the |
| + // correct index values after deletion. |
| + for (var j = selected.length - 1; j >= 0; j--) { |
| + var index = selected[j]; |
| + if (this.getListItemByIndex(index).deletable) |
| + this.deleteItemAtIndex(index); |
| + } |
| + }, |
| + |
| + /** |
| * Called when an item should be deleted; subclasses are responsible for |
| * implementing. |
| * @param {number} index The index of the item that is being deleted. |