shithub: puzzles

Download patch

ref: 666c528326b881460f2b677e20a2a9bc4d86898f
parent: a0a581c8b5422bf0c5ed3fde6aa25811e4eb89fc
author: Simon Tatham <anakin@pobox.com>
date: Thu Sep 14 15:06:44 EDT 2017

Call game_id_change_notify_function after deserialisation.

That's a case in which the current game IDs have changed, so the
midend ought to be calling the front-end function (if any) that
notifies it when that happens.

The only front end of mine that was affected by this missing call was
the Javascript one, which uses that callback to update the 'Link to
this puzzle' links below the game canvas - but, of course, that front
end didn't ever call midend_deserialise until this month, so no wonder
I never noticed before.

(But downstream front ends might be affected too, for all I know.)

--- a/midend.c
+++ b/midend.c
@@ -2059,6 +2059,8 @@
         me->ourgame->new_drawstate(me->drawing,
 				   me->states[me->statepos-1].state);
     midend_size_new_drawstate(me);
+    if (me->game_id_change_notify_function)
+        me->game_id_change_notify_function(me->game_id_change_notify_ctx);
 
     ret = NULL;                        /* success! */