From d7cc24b935f210b88527b69c566c2bbe91c33aa2 Mon Sep 17 00:00:00 2001 From: Ansis Brammanis Date: Fri, 5 Apr 2013 12:11:23 -0400 Subject: [PATCH] shadows for multipolygons --- js/id/behavior/hover.js | 15 ++++++++++++--- js/id/modes/select.js | 2 +- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/js/id/behavior/hover.js b/js/id/behavior/hover.js index 7294491f7..3cdc08668 100644 --- a/js/id/behavior/hover.js +++ b/js/id/behavior/hover.js @@ -23,8 +23,8 @@ iD.behavior.Hover = function() { } } - var hover = function(_) { - selection = _; + var hover = function(__) { + selection = __; if (!altDisables || !d3.event || !d3.event.altKey) { selection.classed('behavior-hover', true); @@ -32,9 +32,18 @@ iD.behavior.Hover = function() { function mouseover() { var datum = d3.event.target.__data__; + if (datum) { + var hovered = [datum.id]; + + if (datum.type === 'relation') { + hovered = hovered.concat(_.pluck(datum.members, 'id')); + } + + hovered = d3.set(hovered); + selection.selectAll('*') - .filter(function(d) { return d === datum; }) + .filter(function(d) { return d && hovered.has(d.id); }) .classed('hover', true); } } diff --git a/js/id/modes/select.js b/js/id/modes/select.js index 5301964da..0d42f9dfa 100644 --- a/js/id/modes/select.js +++ b/js/id/modes/select.js @@ -129,7 +129,7 @@ iD.modes.Select = function(context, selection, initial) { function selected(entity) { if (!entity) return false; if (selection.indexOf(entity.id) >= 0) return true; - return d3.select(this).classed('stroke') && + return d3.select(this) && _.any(context.graph().parentRelations(entity), function(parent) { return selection.indexOf(parent.id) >= 0; });