Skip to content

Commit 5b4c04a

Browse files
jaysoordworth
authored andcommitted
Selectable: modified _mouseStart function to unselect event.target if the Ctrl/Cmd key is pressed, and target is selected. Fixed #4293 - Ctrl + Click on selected list item does not deselect
1 parent 114c001 commit 5b4c04a

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

ui/jquery.ui.selectable.js

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -121,12 +121,15 @@ $.widget("ui.selectable", $.ui.mouse, {
121121
$(event.target).parents().andSelf().each(function() {
122122
var selectee = $.data(this, "selectable-item");
123123
if (selectee) {
124-
selectee.$element.removeClass("ui-unselecting").addClass('ui-selecting');
125-
selectee.unselecting = false;
126-
selectee.selecting = true;
127-
selectee.selected = true;
128-
// selectable SELECTING callback
129-
self._trigger("selecting", event, {
124+
var doSelect = !event.metaKey || !selectee.$element.hasClass('ui-selected');
125+
selectee.$element
126+
.removeClass(doSelect ? "ui-unselecting" : "ui-selected")
127+
.addClass(doSelect ? "ui-selecting" : "ui-unselecting");
128+
selectee.unselecting = !doSelect;
129+
selectee.selecting = doSelect;
130+
selectee.selected = doSelect;
131+
// selectable UNSELECTING callback
132+
self._trigger(doSelect ? "selecting" : "unselecting", event, {
130133
selecting: selectee.element
131134
});
132135
return false;

0 commit comments

Comments
 (0)