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

Reply via email to