ref: 6f5debe417dbcb4b17be00fa4790b80ed887158c
parent: 7354790ca40aa648f8ce6a6f0e568b9971a6a42c
author: Ben Harris <bjh21@bjh21.me.uk>
date: Wed Oct 26 17:17:21 EDT 2022
js: Make update_pixel_ratio more backward-compatible Despite my stylistic downgrades, it still used two features not present in Firefox 48, and hence KaiOS 2.5: passing options to addEventListener, and calling addEventListener on a MediaQueryList at all. Now it uses the older addListener method and explicitly removes each listener as soon as it's called.
--- a/emccpre.js
+++ b/emccpre.js
@@ -527,13 +527,16 @@
/*
* Arrange to detect changes of device pixel ratio. Adapted from
* <https://developer.mozilla.org/en-US/docs/Web/API/Window/
- * devicePixelRatio> (CC0).
+ * devicePixelRatio> (CC0) to work on older browsers.
*/
+ var mql = null;
var update_pixel_ratio = function() {
var dpr = window.devicePixelRatio;
+ if (mql !== null)
+ mql.removeListener(update_pixel_ratio);
resizable_div.style.width = onscreen_canvas.width / dpr + "px";
- matchMedia(`(resolution: ${dpr}dppx)`)
- .addEventListener("change", update_pixel_ratio, { once: true })
+ mql = window.matchMedia(`(resolution: ${dpr}dppx)`);
+ mql.addListener(update_pixel_ratio);
}
update_pixel_ratio();