From: John Firebaugh Date: Wed, 12 Jun 2013 21:37:50 +0000 (-0700) Subject: Fix minimap event bindings X-Git-Tag: live~4885^2~27 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/6f102f2726ad73c4c5f90bda1e7ec5f74774a7bb Fix minimap event bindings --- diff --git a/app/assets/javascripts/leaflet.layers.js b/app/assets/javascripts/leaflet.layers.js index 2bc538798..ea0bf63a0 100644 --- a/app/assets/javascripts/leaflet.layers.js +++ b/app/assets/javascripts/leaflet.layers.js @@ -89,7 +89,6 @@ L.OSM.layers = function(options) { map.whenReady(function() { var miniMap = L.map(div[0], {attributionControl: false, zoomControl: false}) - .setView(map.getCenter(), Math.max(map.getZoom() - 2, 0)) .addLayer(new layer.constructor); miniMap.dragging.disable(); @@ -97,11 +96,23 @@ L.OSM.layers = function(options) { miniMap.doubleClickZoom.disable(); miniMap.scrollWheelZoom.disable(); - map.on('moveend', function() { - miniMap.setView(map.getCenter(), Math.max(map.getZoom() - 2, 0)); - }); + $ui + .on('show', shown) + .on('hide', hide); + + function shown() { + miniMap.invalidateSize(); + setView(); + map.on('moveend', setView); + } - div.data('map', miniMap); + function hide() { + map.off('moveend', setView); + } + + function setView() { + miniMap.setView(map.getCenter(), Math.max(map.getZoom() - 2, 0)); + } }); var label = $('