X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/puzzles/blobdiff_plain/063f4810b7ca31d194f95bba7c24b56e85ada362..35ee200129890bb76d15168c879bb0b0ca622296:/midend.c diff --git a/midend.c b/midend.c index 1f564f3..64edfd3 100644 --- a/midend.c +++ b/midend.c @@ -218,6 +218,17 @@ void midend_size(midend *me, int *x, int *y, int expand) int rx, ry; /* + * We can't set the size on the same drawstate twice. So if + * we've already sized one drawstate, we must throw it away and + * create a new one. + */ + if (me->drawstate && me->tilesize > 0) { + me->ourgame->free_drawstate(me->drawing, me->drawstate); + me->drawstate = me->ourgame->new_drawstate(me->drawing, + me->states[0].state); + } + + /* * Find the tile size that best fits within the given space. If * `expand' is TRUE, we must actually find the _largest_ such * tile size; otherwise, we bound above at the game's preferred