ref: 7cae89fb4b22c305b3fd98b4e1be065ad527a9f7
parent: 0b348877e22930bd76c6f00d8d634f7669cd1acb
author: Simon Tatham <anakin@pobox.com>
date: Tue Dec 27 11:13:01 EST 2016
Add some missing calls to midend_redraw(). I've just noticed that the GTK game window was not being redrawn when changing between puzzle modes that don't involve a window resize - by selecting a preset from the Type menu (e.g. changing between different 12x12 settings in Flood) or via the Custom menu. It looks as if the bug was introduced in commit 8dfe5cec3, which suggests that it was a side effect of the switch from gtk_window_resize_to_geometry to plain gtk_window_resize. My guess is that the implementation of the former function inside GTK might have happened to trigger an unconditional window resize, while the latter took the shortcut of doing nothing if the window was already the right size; hence, resize_fe() would have been reliably generating a redraw event without me having to ask for one, but now it doesn't, so I have to trigger one myself any time I've just called resize_fe.
--- a/gtk.c
+++ b/gtk.c
@@ -1988,6 +1988,7 @@
midend_new_game(fe->me);
changed_preset(fe);
resize_fe(fe);
+ midend_redraw(fe->me);
}
GdkAtom compound_text_atom, utf8_string_atom;
@@ -2231,6 +2232,7 @@
changed_preset(fe);
resize_fe(fe);
+ midend_redraw(fe->me);
}
}
@@ -2268,6 +2270,7 @@
midend_new_game(fe->me);
resize_fe(fe);
+ midend_redraw(fe->me);
}
static void menu_about_event(GtkMenuItem *menuitem, gpointer data)