Fix a couple of robustness issues.
[sgt/puzzles] / gtk.c
diff --git a/gtk.c b/gtk.c
index 84e5e72..742c18c 100644 (file)
--- a/gtk.c
+++ b/gtk.c
@@ -468,7 +468,7 @@ static gint configure_area(GtkWidget *widget,
     gdk_draw_rectangle(fe->pixmap, gc, 1, 0, 0, fe->w, fe->h);
     gdk_gc_unref(gc);
 
-    midend_redraw(fe->me);
+    midend_force_redraw(fe->me);
 
     return TRUE;
 }
@@ -1011,7 +1011,11 @@ static frontend *new_window(char *game_id, char **error)
 
     fe = snew(frontend);
 
+    fe->timer_active = FALSE;
+    fe->timer_id = -1;
+
     fe->me = midend_new(fe, &thegame);
+
     if (game_id) {
         *error = midend_game_id(fe->me, game_id);
         if (*error) {
@@ -1200,8 +1204,6 @@ static frontend *new_window(char *game_id, char **error)
     fe->fonts = NULL;
     fe->nfonts = fe->fontsize = 0;
 
-    fe->timer_active = FALSE;
-
     fe->paste_data = NULL;
     fe->paste_data_len = 0;
 
@@ -1307,7 +1309,7 @@ int main(int argc, char **argv)
 
        while (n-- > 0) {
            game_aux_info *aux = NULL;
-           char *desc = thegame.new_desc(par, rs, &aux);
+           char *desc = thegame.new_desc(par, rs, &aux, FALSE);
            printf("%s:%s\n", parstr, desc);
            sfree(desc);
            if (aux)