From 8708d91e9620b461a9ef48a03f8de495d35700af Mon Sep 17 00:00:00 2001 From: Anton Khorev Date: Tue, 27 May 2025 18:31:26 +0300 Subject: [PATCH] Avoid highlighting multiple changesets in history sidebar Otherwise some highlights might get stuck to changeset list items in the sidebar when scrolling is triggered by "Scroll to changeset" context menu item. --- app/assets/javascripts/index/history-changesets-layer.js | 8 ++++---- app/assets/javascripts/index/history.js | 5 ++++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/app/assets/javascripts/index/history-changesets-layer.js b/app/assets/javascripts/index/history-changesets-layer.js index 4572b420b..9bf2aa6f4 100644 --- a/app/assets/javascripts/index/history-changesets-layer.js +++ b/app/assets/javascripts/index/history-changesets-layer.js @@ -206,14 +206,14 @@ OSM.HistoryChangesetsLayer = L.FeatureGroup.extend({ const changeset = this._changesets.get(id); if (!changeset) return; + this._highlightAreaLayer.clearLayers(); + this._highlightOutlineLayer.clearLayers(); + this._highlightBorderLayer.clearLayers(); + if (state) { this._highlightAreaLayer.addChangesetLayer(changeset); this._highlightOutlineLayer.addChangesetLayer(changeset); this._highlightBorderLayer.addChangesetLayer(changeset); - } else { - this._highlightAreaLayer.removeLayer(id); - this._highlightOutlineLayer.removeLayer(id); - this._highlightBorderLayer.removeLayer(id); } }, diff --git a/app/assets/javascripts/index/history.js b/app/assets/javascripts/index/history.js index f3b2be170..d0135f459 100644 --- a/app/assets/javascripts/index/history.js +++ b/app/assets/javascripts/index/history.js @@ -116,7 +116,10 @@ OSM.History = function (map) { function toggleChangesetHighlight(id, state) { changesetsLayer.toggleChangesetHighlight(id, state); - $("#changeset_" + id).toggleClass("selected", state); + $("#sidebar_content .changesets ol li").removeClass("selected"); + if (state) { + $("#changeset_" + id).addClass("selected"); + } } function clickChangeset(id, e) { -- 2.39.5