popup anchor and resize fix

This commit is contained in:
Iris Lightshard 2023-07-15 17:22:04 -06:00
parent fdc675dd22
commit e34ab4711c
Signed by: Iris Lightshard
GPG key ID: 3B7FBC22144E6398
2 changed files with 18 additions and 10 deletions

View file

@ -24,16 +24,24 @@ function initializeMap(mapImgUrl) {
// this works but assumes the map is square (reasonable limitation I think)
function resizeMarkers() {
let tryAgain = false;
tokens.forEach(t=>{
const icon = t.m.options.icon;
const scaleFactor = mapImg._image.clientWidth / mapImg._image.naturalWidth;
if (t.m._icon == null) {
tryAgain = true;
} else {
const icon = t.m.options.icon;
const scaleFactor = mapImg._image.clientWidth / mapImg._image.naturalWidth;
icon.options.iconSize = [scaleFactor * t.t.w, scaleFactor * t.t.h];
icon.options.iconAnchor = [scaleFactor * t.t.oX, scaleFactor * t.t.oY];
icon.options.popupAnchor = [0, -scaleFactor * t.t.oY];
icon.options.iconSize = [scaleFactor * t.t.w, scaleFactor * t.t.h];
icon.options.iconAnchor = [scaleFactor * t.t.oX, scaleFactor * t.t.oY];
icon.options.popupAnchor = [0, -scaleFactor * t.t.oY];
t.m.setIcon(icon);
t.m.setIcon(icon);
}
});
if (tryAgain) {
setTimeout(resizeMarkers, 500)
}
}
function processTokens(tokenChanges) {
@ -45,7 +53,6 @@ function processTokens(tokenChanges) {
if (t.x != null && t.y != null && !self.t.active && t.active) {
self.t.active = true;
self.m.addTo(map);
resizeMarkers();
// token was made inactive
} else if (t.x != null && t.y != null && self.t.active && !t.active) {
self.t.active = false;
@ -74,7 +81,6 @@ function processTokens(tokenChanges) {
});
if (t.active) {
self.m.addTo(map);
resizeMarkers();
}
}
}

View file

@ -197,8 +197,10 @@ function dial() {
tokens[0].m.removeFrom(map);
tokens.shift();
}
mapImg.removeFrom(map);
mapImg = null;
if (mapImg) {
mapImg.removeFrom(map);
mapImg = null;
}
}
});
conn.addEventListener("open", e => {