From fba22f04d684dfb14d1f74c12ba71dd0b2f7be32 Mon Sep 17 00:00:00 2001 From: Ben Harris Date: Mon, 7 Nov 2022 23:05:56 +0000 Subject: [PATCH] js: Make update_pixel_ratio() more robust With very small tile sizes, js_canvas_find_font_midpoint() can throw an exception. When it was called from update_pixel_ratio(), this prevented the new MediaQueryList from being created, which meant that the puzzle stopped noticing changes of device pixel ratio. Now update_pixel_ratio() establishes a new MediaQueryList before calling rescale_puzzle(), so the exception can't break it. Catching the exception properly would be even better, of course. --- emccpre.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/emccpre.js b/emccpre.js index e91a215..6af3350 100644 --- a/emccpre.js +++ b/emccpre.js @@ -547,9 +547,9 @@ function initPuzzle() { var dpr = window.devicePixelRatio; if (mql !== null) mql.removeListener(update_pixel_ratio); - rescale_puzzle(nominal_width * dpr, nominal_height * dpr); mql = window.matchMedia(`(resolution: ${dpr}dppx)`); mql.addListener(update_pixel_ratio); + rescale_puzzle(nominal_width * dpr, nominal_height * dpr); } Module.onRuntimeInitialized = function() {