diff --git a/src/map/map.cpp b/src/map/map.cpp index 73a89fca8..568510224 100644 --- a/src/map/map.cpp +++ b/src/map/map.cpp @@ -40,7 +40,6 @@ void Map::loadSettings() { transform.setAngle(settings.angle); transform.setScale(settings.scale); transform.setLonLat(settings.longitude, settings.latitude); - style.cascade(transform.getNormalizedZoom()); update(); } @@ -81,7 +80,6 @@ void Map::stopPanning() { void Map::scaleBy(double ds, double cx, double cy, double duration) { transform.scaleBy(ds, cx, cy, duration); - style.cascade(transform.getNormalizedZoom()); update(); transform.getLonLat(settings.longitude, settings.latitude); @@ -131,7 +129,6 @@ void Map::getLonLat(double& lon, double& lat) const { void Map::setLonLatZoom(double lon, double lat, double zoom, double duration) { transform.setLonLatZoom(lon, lat, zoom, duration); - style.cascade(transform.getNormalizedZoom()); update(); transform.getLonLat(settings.longitude, settings.latitude); @@ -145,7 +142,6 @@ void Map::getLonLatZoom(double& lon, double& lat, double& zoom) const { void Map::setScale(double scale, double cx, double cy, double duration) { transform.setScale(scale, cx, cy, duration); - style.cascade(transform.getNormalizedZoom()); update(); transform.getLonLat(settings.longitude, settings.latitude); @@ -155,7 +151,6 @@ void Map::setScale(double scale, double cx, double cy, double duration) { void Map::setZoom(double zoom, double duration) { transform.setZoom(zoom, duration); - style.cascade(transform.getNormalizedZoom()); update(); transform.getLonLat(settings.longitude, settings.latitude); @@ -209,7 +204,6 @@ void Map::resetPosition() { transform.setAngle(0); transform.setLonLat(0, 0); transform.setZoom(0); - style.cascade(transform.getNormalizedZoom()); update(); transform.getLonLat(settings.longitude, settings.latitude); @@ -234,7 +228,13 @@ void Map::cancelAnimations() { } void Map::update() { + // Loads new tiles and removes old ones. updateTiles(); + + // Updates the stylesheet to the new zoom level + style.cascade(transform.getNormalizedZoom()); + + // Schedules a repaint platform::restart(); } @@ -437,6 +437,9 @@ bool Map::render() { if (transform.needsAnimation()) { transform.updateAnimations(animationTime); + + // Animations change the transform which affects the stylesheet. + style.cascade(transform.getNormalizedZoom()); } if (*style.sprite->raster && !style.sprite->raster->textured) {