Thank you for reporting this bug. We will make it our priority to review this report.
-
Sencha User
[6.5.2 Modern] List with `selectable: 'multi'` doesn't trigger 'deselect' event
List with selectable: 'multi' doesn't trigger 'deselect' event when deselect a listitem.
Ext version tested:
Ext 6.5.2.463 Modern
Browser versions tested against:
Windows7 Chrome 58.0.3029.110
Fiddle:
https://fiddle.sencha.com/#view/editor&fiddle/28k6
BTW:
For Ext 6.5.0.775 Modern, list need to select and deselect with `ctrl`/`shift` key, but `deselect` event is not fired when deselect an item;
For Ext 6.5.1.345 Modern, lis can select without `ctrl`/`shift` key, but when deselect an item, all selected items become unselected; if deselect an item with `ctrl` key, `deselect` event is not fired.
-
Sencha User
I've got a workaround
The second argument of `deselect` method of `Ext.dataview.selection.Model` is `supressEvent`, not `keepExisting` as `select` method.
Code:
Ext.define('Override.dataview.selection.Model', {
override: 'Ext.dataview.selection.Model',
selectWithEventMulti: function(record, e, isSelected) {
var me = this,
shift = e.shiftKey,
ctrl = e.ctrlKey,
start = shift ? me.selectionStart : null;
if (shift && start) {
me.selectRange(start, record, ctrl);
} else {
//here
if(isSelected) me.deselect(record);
else me.select(record, true);
//me[isSelected ? 'deselect' : 'select'](record, true);
}
}
});