From fa58dd85b7ee06fed8d7a5ecc14fda8146f7521b Mon Sep 17 00:00:00 2001 From: Ben Harris Date: Thu, 27 Oct 2022 14:30:23 +0100 Subject: js: Distinguish manual resizes from device pixel ratio changes This adds a new callback, rescale_puzzle(), that's called when the device pixel ratio changes. This means that resize_puzzle() can safely set the nominal canvas size, which means that manual resizing of the puzzle now sticks. Still missing: paying attention to the device pixel ratio when choosing the initial (or reset) size. --- emccpre.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'emccpre.js') diff --git a/emccpre.js b/emccpre.js index 0c555f9..c2af60a 100644 --- a/emccpre.js +++ b/emccpre.js @@ -535,12 +535,14 @@ function initPuzzle() { * (CC0) to work on older browsers. */ + var rescale_puzzle = Module.cwrap('rescale_puzzle', + 'void', ['number', 'number']); var mql = null; var update_pixel_ratio = function() { var dpr = window.devicePixelRatio; if (mql !== null) mql.removeListener(update_pixel_ratio); - resize_puzzle(nominal_width * dpr, nominal_height * dpr); + rescale_puzzle(nominal_width * dpr, nominal_height * dpr); mql = window.matchMedia(`(resolution: ${dpr}dppx)`); mql.addListener(update_pixel_ratio); } -- cgit v1.1