From 98c59e111bb1e8355b8eba3a10f9a5fbf2076d30 Mon Sep 17 00:00:00 2001 From: M Somerville Date: Tue, 18 Aug 2020 10:30:43 +0100 Subject: Do not unselect an asset from a different layer. If a new asset layer is shown before an old one is removed, the removal could cause the newly selected asset to be unselected, leaving visibly an asset selected but nothing recorded as being selected behind the scenes. --- web/cobrands/fixmystreet/assets.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/web/cobrands/fixmystreet/assets.js b/web/cobrands/fixmystreet/assets.js index 3d147f038..6ebb0524b 100644 --- a/web/cobrands/fixmystreet/assets.js +++ b/web/cobrands/fixmystreet/assets.js @@ -399,6 +399,7 @@ function asset_selected(e) { // Keep track of selection in case layer is reloaded or hidden etc. selected_feature = feature.clone(); + selected_feature.layer = feature.layer; // Hide the normal markers layer to keep things simple, but // move the green marker to the point of the click to stop @@ -419,6 +420,11 @@ function asset_selected(e) { } function asset_unselected(e) { + if (selected_feature.layer !== this) { + // The selected feature has already changed to something in a different + // layer, so we don't want to mess that up by clearing it + return; + } fixmystreet.markers.setVisibility(true); selected_feature = null; this.clearAttributeFields(); -- cgit v1.2.3