Shift-click deselects a selected entity

This commit is contained in:
John Firebaugh
2013-02-12 14:20:07 -08:00
parent 419aa088e3
commit 0dbdd7c797

View File

@@ -2,14 +2,20 @@ iD.behavior.Select = function(context) {
var behavior = function(selection) {
function click() {
var datum = d3.event.target.__data__;
if (datum instanceof iD.Entity) {
if (d3.event.shiftKey) {
context.enter(iD.modes.Select(context, context.selection().concat([datum.id])));
} else {
context.enter(iD.modes.Select(context, [datum.id]));
}
} else if (!d3.event.shiftKey) {
if (!(datum instanceof iD.Entity) && !d3.event.shiftKey) {
context.enter(iD.modes.Browse(context));
} else if (!d3.event.shiftKey) {
context.enter(iD.modes.Select(context, [datum.id]));
} else if (context.selection().indexOf(datum.id) >= 0) {
var selection = _.without(context.selection(), datum.id);
context.enter(selection.length ?
iD.modes.Select(context, selection) :
iD.modes.Browse(context));
} else {
context.enter(iD.modes.Select(context, context.selection().concat([datum.id])));
}
}