diff --git a/js/id/behavior/draw.js b/js/id/behavior/draw.js index c3b7b277e..358549577 100644 --- a/js/id/behavior/draw.js +++ b/js/id/behavior/draw.js @@ -89,7 +89,9 @@ iD.behavior.Draw = function(context) { } function draw(selection) { - context.install(hover); + if (!d3.event || !d3.event.altKey) { + context.install(hover); + } keybinding .on('⌫', backspace) diff --git a/js/id/behavior/hover.js b/js/id/behavior/hover.js index 0f5786676..64748e4f0 100644 --- a/js/id/behavior/hover.js +++ b/js/id/behavior/hover.js @@ -32,6 +32,9 @@ iD.behavior.Hover = function() { selection.classed('behavior-hover', false) .on('mouseover.hover', null) .on('mouseout.hover', null); + + selection.selectAll('.hover') + .classed('hover', false); }; return hover; diff --git a/test/spec/behavior/hover.js b/test/spec/behavior/hover.js index 62d301d19..070a552b1 100644 --- a/test/spec/behavior/hover.js +++ b/test/spec/behavior/hover.js @@ -22,6 +22,12 @@ describe("iD.behavior.Hover", function() { container.call(iD.behavior.Hover().off); expect(container).not.to.be.classed('behavior-hover') }); + + it("removes the .hover class from all elements", function () { + container.append('span').attr('class', 'hover'); + container.call(iD.behavior.Hover().off); + expect(container.select('span')).not.to.be.classed('hover') + }); }); describe("mouseover", function () {