diff --git a/code/map_data.js b/code/map_data.js index 8f3f1361..dc370cd6 100644 --- a/code/map_data.js +++ b/code/map_data.js @@ -125,10 +125,16 @@ window.handleDataResponse = function(data, textStatus, jqXHR) { } }); + // Preserve and restore "selectedPortal" between portal re-render + if(portalUpdateAvailable) var oldSelectedPortal = selectedPortal; $.each(ppp, function(ind, portal) { renderPortal(portal); }); - if(portals[selectedPortal]) { + + var selectedPortalLayer = portals[oldSelectedPortal]; + if(portalUpdateAvailable && selectedPortalLayer) selectedPortal = oldSelectedPortal; + + if(selectedPortalLayer) { try { - portals[selectedPortal].bringToFront(); + selectedPortalLayer.bringToFront(); } catch(e) { /* portal is now visible, catch Leaflet error */ } }