Author: cazfi Date: Sat Mar 22 09:01:22 2014 New Revision: 24708 URL: http://svn.gna.org/viewcvs/freeciv?rev=24708&view=rev Log: Never call client_exit() directly inside gtk main loop, but exit the loop so that end of ui_main() gets executed too.
See bug #21806 Modified: trunk/client/gui-gtk-2.0/gui_main.c trunk/client/gui-gtk-2.0/gui_main.h trunk/client/gui-gtk-2.0/pages.c trunk/client/gui-gtk-3.0/gui_main.c trunk/client/gui-gtk-3.0/gui_main.h trunk/client/gui-gtk-3.0/pages.c Modified: trunk/client/gui-gtk-2.0/gui_main.c URL: http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-gtk-2.0/gui_main.c?rev=24708&r1=24707&r2=24708&view=diff ============================================================================== --- trunk/client/gui-gtk-2.0/gui_main.c (original) +++ trunk/client/gui-gtk-2.0/gui_main.c Sat Mar 22 09:01:22 2014 @@ -1986,8 +1986,19 @@ { gtk_widget_destroy(dialog); if (response == GTK_RESPONSE_YES) { - client_exit(); - } + quit_gtk_main(); + } +} + +/**************************************************************** + Exit gtk main loop. +****************************************************************/ +void quit_gtk_main(void) +{ + /* Quit gtk main loop. After this it will return to finish + * ui_main() */ + + gtk_main_quit(); } /**************************************************************** Modified: trunk/client/gui-gtk-2.0/gui_main.h URL: http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-gtk-2.0/gui_main.h?rev=24708&r1=24707&r2=24708&view=diff ============================================================================== --- trunk/client/gui-gtk-2.0/gui_main.h (original) +++ trunk/client/gui-gtk-2.0/gui_main.h Sat Mar 22 09:01:22 2014 @@ -84,6 +84,7 @@ void reset_unit_table(void); void popup_quit_dialog(void); +void quit_gtk_main(void); void refresh_chat_buttons(void); #endif /* FC__GUI_MAIN_H */ Modified: trunk/client/gui-gtk-2.0/pages.c URL: http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-gtk-2.0/pages.c?rev=24708&r1=24707&r2=24708&view=diff ============================================================================== --- trunk/client/gui-gtk-2.0/pages.c (original) +++ trunk/client/gui-gtk-2.0/pages.c Sat Mar 22 09:01:22 2014 @@ -274,11 +274,10 @@ gtk_size_group_add_widget(size, button); gtk_table_attach_defaults(GTK_TABLE(table), button, 1, 2, 2, 3); g_signal_connect(button, "clicked", - G_CALLBACK(gtk_main_quit), NULL); + G_CALLBACK(quit_gtk_main), NULL); return widget; } - /**************************************************************************** GENERIC SAVE DIALOG Modified: trunk/client/gui-gtk-3.0/gui_main.c URL: http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-gtk-3.0/gui_main.c?rev=24708&r1=24707&r2=24708&view=diff ============================================================================== --- trunk/client/gui-gtk-3.0/gui_main.c (original) +++ trunk/client/gui-gtk-3.0/gui_main.c Sat Mar 22 09:01:22 2014 @@ -1996,8 +1996,19 @@ { gtk_widget_destroy(dialog); if (response == GTK_RESPONSE_YES) { - client_exit(); - } + quit_gtk_main(); + } +} + +/**************************************************************** + Exit gtk main loop. +****************************************************************/ +void quit_gtk_main(void) +{ + /* Quit gtk main loop. After this it will return to finish + * ui_main() */ + + gtk_main_quit(); } /**************************************************************** Modified: trunk/client/gui-gtk-3.0/gui_main.h URL: http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-gtk-3.0/gui_main.h?rev=24708&r1=24707&r2=24708&view=diff ============================================================================== --- trunk/client/gui-gtk-3.0/gui_main.h (original) +++ trunk/client/gui-gtk-3.0/gui_main.h Sat Mar 22 09:01:22 2014 @@ -72,6 +72,7 @@ void reset_unit_table(void); void popup_quit_dialog(void); +void quit_gtk_main(void); void refresh_chat_buttons(void); #endif /* FC__GUI_MAIN_H */ Modified: trunk/client/gui-gtk-3.0/pages.c URL: http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-gtk-3.0/pages.c?rev=24708&r1=24707&r2=24708&view=diff ============================================================================== --- trunk/client/gui-gtk-3.0/pages.c (original) +++ trunk/client/gui-gtk-3.0/pages.c Sat Mar 22 09:01:22 2014 @@ -284,7 +284,7 @@ g_object_unref(size); gtk_grid_attach(GTK_GRID(table), button, 1, 2, 1, 1); g_signal_connect(button, "clicked", - G_CALLBACK(client_exit), NULL); + G_CALLBACK(quit_gtk_main), NULL); return widget; } _______________________________________________ Freeciv-commits mailing list Freeciv-commits@gna.org https://mail.gna.org/listinfo/freeciv-commits