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. --- emcc.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'emcc.c') diff --git a/emcc.c b/emcc.c index 4591ccb..605938b 100644 --- a/emcc.c +++ b/emcc.c @@ -195,8 +195,8 @@ static void resize(void) canvas_h = h; } -/* Called from JS when the user uses the resize handle */ -void resize_puzzle(int w, int h) +/* Called from JS when the device pixel ratio changes */ +void rescale_puzzle(int w, int h) { midend_size(me, &w, &h, true); if (canvas_w != w || canvas_h != h) { @@ -207,6 +207,13 @@ void resize_puzzle(int w, int h) } } +/* Called from JS when the user uses the resize handle */ +void resize_puzzle(int w, int h) +{ + rescale_puzzle(w, h); + js_canvas_set_nominal_size(); +} + /* Called from JS when the user uses the restore button */ void restore_puzzle_size(int w, int h) { -- cgit v1.1