]> git.openstreetmap.org Git - rails.git/commitdiff
Fix minimap event bindings
authorJohn Firebaugh <john.firebaugh@gmail.com>
Wed, 12 Jun 2013 21:37:50 +0000 (14:37 -0700)
committerJohn Firebaugh <john.firebaugh@gmail.com>
Thu, 18 Jul 2013 17:45:15 +0000 (10:45 -0700)
app/assets/javascripts/leaflet.layers.js

index 2bc53879838a492fb710356581a48296116e2315..ea0bf63a02f62516c809cd6dc83f2166d511878e 100644 (file)
@@ -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 = $('<label>')
@@ -125,15 +136,6 @@ L.OSM.layers = function(options) {
 
     options.sidebar.addPane($ui);
 
-    $ui
-      .on('show', shown);
-
-    function shown() {
-      $ui.find('.base-layers .leaflet-container').each(function() {
-        $(this).data('map').invalidateSize();
-      });
-    }
-
     function toggle(e) {
       e.stopPropagation();
       e.preventDefault();