From 690f2d94a57170398f76d07fdbc07021fd8169a8 Mon Sep 17 00:00:00 2001 From: Ansis Brammanis Date: Tue, 16 Apr 2013 22:58:13 -0400 Subject: [PATCH] disable reset button when background not offset also, only start the fast adjustment after 500ms to prevent slow clicks from triggering multiple nudges fixes #1312 --- js/id/ui/background.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/js/id/ui/background.js b/js/id/ui/background.js index 999450eda..ccb5a53f5 100644 --- a/js/id/ui/background.js +++ b/js/id/ui/background.js @@ -140,15 +140,22 @@ iD.ui.Background = function(context) { } function clickNudge(d) { - var interval = window.setInterval(nudge, 100); + + var timeout = window.setTimeout(function() { + interval = window.setInterval(nudge, 100); + }, 500), + interval; d3.select(this).on('mouseup', function() { window.clearInterval(interval); + window.clearTimeout(timeout); nudge(); }); function nudge() { context.background().nudge(d[1], context.map().zoom()); + var offset = context.background().offset(); + resetButton.classed('disabled', offset[0] === 0 && offset[1] === 0); context.redraw(); } } @@ -302,9 +309,10 @@ iD.ui.Background = function(context) { .on('mousedown', clickNudge); var resetButton = nudgeContainer.append('button') - .attr('class', 'reset') + .attr('class', 'reset disabled') .on('click', function () { context.background().offset([0, 0]); + resetButton.classed('disabled', true); context.redraw(); });