OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 cr.define('cr.ui', function() { | 5 cr.define('cr.ui', function() { |
6 const Event = cr.Event; | 6 const Event = cr.Event; |
7 const EventTarget = cr.EventTarget; | 7 const EventTarget = cr.EventTarget; |
8 | 8 |
9 /** | 9 /** |
10 * Creates a new selection model that is to be used with lists. This is | 10 * Creates a new selection model that is to be used with lists. This is |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
106 */ | 106 */ |
107 handleMouseDownUp: function(e, item) { | 107 handleMouseDownUp: function(e, item) { |
108 var anchorItem = this.anchorItem; | 108 var anchorItem = this.anchorItem; |
109 | 109 |
110 this.beginChange_(); | 110 this.beginChange_(); |
111 | 111 |
112 if (!item && !e.ctrlKey && !e.shiftKey && !e.metaKey) { | 112 if (!item && !e.ctrlKey && !e.shiftKey && !e.metaKey) { |
113 this.clear(); | 113 this.clear(); |
114 } else { | 114 } else { |
115 var isDown = e.type == 'mousedown'; | 115 var isDown = e.type == 'mousedown'; |
116 if (!cr.isMac && e.ctrlKey) { | 116 if (cr.isMac ? e.metaKey : e.ctrlKey) { |
117 // Handle ctrlKey on mouseup | 117 // Selection is handled at mouseUp on windows/linux, mouseDown on mac. |
118 if (!isDown) { | 118 if (cr.isMac? isDown : !isDown) { |
119 // toggle the current one and make it anchor item | 119 // toggle the current one and make it anchor item |
120 this.setItemSelected(item, !this.getItemSelected(item)); | 120 this.setItemSelected(item, !this.getItemSelected(item)); |
121 this.leadItem = item; | 121 this.leadItem = item; |
122 this.anchorItem = item; | 122 this.anchorItem = item; |
123 } | 123 } |
124 } else if (e.shiftKey && anchorItem && anchorItem != item) { | 124 } else if (e.shiftKey && anchorItem && anchorItem != item) { |
125 // Shift is done in mousedown | 125 // Shift is done in mousedown |
126 if (isDown) { | 126 if (isDown) { |
127 this.clearAllSelected_(); | 127 this.clearAllSelected_(); |
128 this.leadItem = item; | 128 this.leadItem = item; |
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
433 * The leadItem is used with multiple selection and it is the item that the | 433 * The leadItem is used with multiple selection and it is the item that the |
434 * user is moving uysing the arrow keys. | 434 * user is moving uysing the arrow keys. |
435 * @type {*} | 435 * @type {*} |
436 */ | 436 */ |
437 cr.defineProperty(ListSelectionModel, 'leadItem', cr.PropertyKind.JS, null); | 437 cr.defineProperty(ListSelectionModel, 'leadItem', cr.PropertyKind.JS, null); |
438 | 438 |
439 return { | 439 return { |
440 ListSelectionModel: ListSelectionModel | 440 ListSelectionModel: ListSelectionModel |
441 }; | 441 }; |
442 }); | 442 }); |
OLD | NEW |