diff --git a/src/public/app/widgets/geo_map.ts b/src/public/app/widgets/geo_map.ts
index b9f14c3ef..fabefcdc9 100644
--- a/src/public/app/widgets/geo_map.ts
+++ b/src/public/app/widgets/geo_map.ts
@@ -52,8 +52,6 @@ export default class GeoMapWidget extends NoteContextAwareWidget {
this.initCallback(L);
}
- map.addEventListener("zoom", () => this.triggerCommand("refreshTouchBar"));
-
L.tileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png", {
attribution: '© OpenStreetMap contributors',
detectRetina: true
diff --git a/src/public/app/widgets/type_widgets/geo_map.ts b/src/public/app/widgets/type_widgets/geo_map.ts
index 9c86bbf48..b68b2c09c 100644
--- a/src/public/app/widgets/type_widgets/geo_map.ts
+++ b/src/public/app/widgets/type_widgets/geo_map.ts
@@ -105,6 +105,7 @@ export default class GeoMapTypeWidget extends TypeWidget {
private currentMarkerData: Record;
private currentTrackData: Record;
private gpxLoaded?: boolean;
+ private ignoreNextZoomEvent?: boolean;
static getType() {
return "geoMap";
@@ -144,6 +145,13 @@ export default class GeoMapTypeWidget extends TypeWidget {
map.on("moveend", updateFn);
map.on("zoomend", updateFn);
map.on("click", (e) => this.#onMapClicked(e));
+ map.on("zoom", () => {
+ if (!this.ignoreNextZoomEvent) {
+ this.triggerCommand("refreshTouchBar");
+ }
+
+ this.ignoreNextZoomEvent = false;
+ });
}
async #restoreViewportAndZoom() {
@@ -383,6 +391,7 @@ export default class GeoMapTypeWidget extends TypeWidget {
buildTouchBarCommand({ TouchBar }: CommandListenerData<"buildTouchBar">) {
const map = this.geoMapWidget.map;
+ const that = this;
if (!map) {
return;
}
@@ -394,6 +403,7 @@ export default class GeoMapTypeWidget extends TypeWidget {
minValue: map.getMinZoom(),
maxValue: map.getMaxZoom(),
change(newValue) {
+ that.ignoreNextZoomEvent = true;
map.setZoom(newValue);
},
}),