From 9abc0cd9a7d145e5869f0d2fb7ed675afaaebf1e Mon Sep 17 00:00:00 2001 From: Ansis Brammanis Date: Fri, 15 Mar 2013 18:02:44 -0400 Subject: [PATCH] make background and geocoder exclusive --- js/id/ui/background.js | 14 +++++++++++--- js/id/ui/geocoder.js | 13 +++++++++---- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/js/id/ui/background.js b/js/id/ui/background.js index 5ea9d963b..7daab1dbe 100644 --- a/js/id/ui/background.js +++ b/js/id/ui/background.js @@ -44,14 +44,22 @@ iD.ui.Background = function(context) { button.classed('active', show); content.call(iD.ui.Toggle(show)); shown = show; + + if (show) { + selection.on('mousedown.background-inside', function() { + return d3.event.stopPropagation(); + }); + } else { + selection.on('mousedown.background-inside', null); + } } } - selection.on('mousedown.background-inside', function() { - return d3.event.stopPropagation(); + context.surface().on('mousedown.background-outside', function() { + setVisible(false); }); - context.surface().on('mousedown.background-outside', function() { + context.container().on('mousedown.background-outside', function() { setVisible(false); }); diff --git a/js/id/ui/geocoder.js b/js/id/ui/geocoder.js index d73c19dce..773815e53 100644 --- a/js/id/ui/geocoder.js +++ b/js/id/ui/geocoder.js @@ -86,6 +86,14 @@ iD.ui.Geocoder = function(context) { if (show) inputNode.node().focus(); else inputNode.node().blur(); shown = show; + + if (show) { + selection.on('mousedown.geocoder-inside', function() { + return d3.event.stopPropagation(); + }); + } else { + selection.on('mousedown.geocoder-inside', null); + } } } var tooltip = bootstrap.tooltip() @@ -112,11 +120,8 @@ iD.ui.Geocoder = function(context) { var resultsList = selection.append('div') .attr('class', 'content fillD map-overlay hide'); - selection.on('mousedown.geocoder-inside', function() { - return d3.event.stopPropagation(); - }); - context.surface().on('mousedown.geocoder-outside', hide); + context.container().on('mousedown.b.geocoder-outside', hide); var keybinding = d3.keybinding('geocoder');