mirror of
git://git.tartarus.org/simon/puzzles.git
synced 2025-04-21 08:01:30 -07:00
Fix switching to a larger puzzle size under GTK 2.
Commit 8b491946e had a bug: configure_area stopped doing most of its work if the new size already matched fe->w and fe->h, but in fact the GTK2 resize_fe() _already_ set up fe->w and fe->h for the new size. I managed not to notice, because I checked it all worked on GTK 3 but only tested resizing to a _smaller_ puzzle on GTK 2. Ahem. Now we don't change fe->w and fe->h at all until configure_area is called. Also, we initialise them to dummy values at setup time, so that configure_area won't compare the new size with uninitialised data.
This commit is contained in:
6
gtk.c
6
gtk.c
@ -1889,8 +1889,6 @@ static void resize_fe(frontend *fe)
|
||||
#if GTK_CHECK_VERSION(3,0,0)
|
||||
gtk_window_resize_to_geometry(GTK_WINDOW(fe->window), x, y);
|
||||
#else
|
||||
fe->w = x;
|
||||
fe->h = y;
|
||||
fe->drawing_area_shrink_pending = FALSE;
|
||||
gtk_drawing_area_size(GTK_DRAWING_AREA(fe->area), x, y);
|
||||
{
|
||||
@ -2582,6 +2580,8 @@ static frontend *new_window(char *arg, int argtype, char **error)
|
||||
gtk_window_set_geometry_hints(GTK_WINDOW(fe->window), fe->area,
|
||||
&geom, GDK_HINT_BASE_SIZE);
|
||||
}
|
||||
fe->w = -1;
|
||||
fe->h = -1;
|
||||
get_size(fe, &x, &y);
|
||||
#if GTK_CHECK_VERSION(3,0,0)
|
||||
gtk_window_set_default_geometry(GTK_WINDOW(fe->window), x, y);
|
||||
@ -2589,8 +2589,6 @@ static frontend *new_window(char *arg, int argtype, char **error)
|
||||
fe->drawing_area_shrink_pending = FALSE;
|
||||
gtk_drawing_area_size(GTK_DRAWING_AREA(fe->area), x, y);
|
||||
#endif
|
||||
fe->w = x;
|
||||
fe->h = y;
|
||||
|
||||
gtk_box_pack_end(vbox, fe->area, TRUE, TRUE, 0);
|
||||
|
||||
|
Reference in New Issue
Block a user