diff options
author | M Somerville <matthew-github@dracos.co.uk> | 2020-08-18 10:30:43 +0100 |
---|---|---|
committer | M Somerville <matthew-github@dracos.co.uk> | 2020-08-24 10:51:49 +0100 |
commit | 98c59e111bb1e8355b8eba3a10f9a5fbf2076d30 (patch) | |
tree | 6a53dc8a3be5651d297823259dc69e1d2b95abc8 | |
parent | 0bdf5f60b2d6b28aea30a2c9330ebfbe258ece8e (diff) |
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.
-rw-r--r-- | web/cobrands/fixmystreet/assets.js | 6 |
1 files changed, 6 insertions, 0 deletions
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(); |