Author: cazfi
Date: Thu Apr 23 00:16:30 2015
New Revision: 28842

URL: http://svn.gna.org/viewcvs/freeciv?rev=28842&view=rev
Log:
Make sure orders icons do not appear on main screen after one has left the game 
in
sdl-clients.

See bug #23357

Modified:
    branches/S2_6/client/gui-sdl/dialogs.c
    branches/S2_6/client/gui-sdl/menu.c
    branches/S2_6/client/gui-sdl/optiondlg.c
    branches/S2_6/client/gui-sdl/optiondlg.h
    branches/S2_6/client/gui-sdl2/dialogs.c
    branches/S2_6/client/gui-sdl2/menu.c
    branches/S2_6/client/gui-sdl2/optiondlg.c
    branches/S2_6/client/gui-sdl2/optiondlg.h

Modified: branches/S2_6/client/gui-sdl/dialogs.c
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/client/gui-sdl/dialogs.c?rev=28842&r1=28841&r2=28842&view=diff
==============================================================================
--- branches/S2_6/client/gui-sdl/dialogs.c      (original)
+++ branches/S2_6/client/gui-sdl/dialogs.c      Thu Apr 23 00:16:30 2015
@@ -64,6 +64,7 @@
 #include "inteldlg.h"
 #include "mapctrl.h"
 #include "mapview.h"
+#include "menu.h"
 #include "messagewin.h"
 #include "optiondlg.h"
 #include "plrdlg.h"
@@ -148,7 +149,8 @@
   popdown_advanced_terrain_dialog();
   popdown_terrain_info_dialog();
   popdown_newcity_dialog();
-  popdown_optiondlg();
+  popdown_optiondlg(TRUE);
+  undraw_order_widgets();
   popdown_diplomat_dialog();
   popdown_pillage_dialog();
   popdown_incite_dialog();

Modified: branches/S2_6/client/gui-sdl/menu.c
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/client/gui-sdl/menu.c?rev=28842&r1=28841&r2=28842&view=diff
==============================================================================
--- branches/S2_6/client/gui-sdl/menu.c (original)
+++ branches/S2_6/client/gui-sdl/menu.c Thu Apr 23 00:16:30 2015
@@ -956,6 +956,10 @@
 void undraw_order_widgets(void)
 {
   struct widget *pTmpWidget = pBeginOrderWidgetList;
+
+  if (pTmpWidget == NULL) {
+    return;
+  }
 
   while (TRUE) {
 

Modified: branches/S2_6/client/gui-sdl/optiondlg.c
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/client/gui-sdl/optiondlg.c?rev=28842&r1=28841&r2=28842&view=diff
==============================================================================
--- branches/S2_6/client/gui-sdl/optiondlg.c    (original)
+++ branches/S2_6/client/gui-sdl/optiondlg.c    Thu Apr 23 00:16:30 2015
@@ -239,16 +239,16 @@
   }
 
   if (ODM_MAIN == option_dialog->mode) {
-    popdown_optiondlg();
-
     if (client.conn.established) {
       /* Back to game. */
+      popdown_optiondlg(FALSE);
       enable_options_button();
       widget_redraw(pOptions_Button);
       widget_mark_dirty(pOptions_Button);
       flush_dirty();
     } else {
       /* Back to main page. */
+      popdown_optiondlg(TRUE);
       set_client_page(PAGE_MAIN);
     }
     return -1;
@@ -367,7 +367,7 @@
 static int disconnect_callback(struct widget *pWidget)
 {
   if (Main.event.button.button == SDL_BUTTON_LEFT) {
-    popdown_optiondlg();
+    popdown_optiondlg(TRUE);
     enable_options_button();
     disconnect_from_server();
   }
@@ -380,7 +380,7 @@
 static int exit_callback(struct widget *pWidget)
 {
   if (Main.event.button.button == SDL_BUTTON_LEFT) {
-    popdown_optiondlg();
+    popdown_optiondlg(TRUE);
     force_exit_from_event_loop();
   }
   return 0;
@@ -1380,9 +1380,9 @@
 }
 
 /**************************************************************************
-  ...
+  Close option dialog.
 **************************************************************************/
-void popdown_optiondlg(void)
+void popdown_optiondlg(bool leave_game)
 {
   if (NULL == option_dialog) {
     return;
@@ -1390,7 +1390,10 @@
 
   option_dialog_destroy(option_dialog);
   option_dialog = NULL;
-  enable_main_widgets();
+
+  if (!leave_game) {
+    enable_main_widgets();
+  }
 
   if (restore_meswin_dialog) {
     meswin_dialog_popup(TRUE);

Modified: branches/S2_6/client/gui-sdl/optiondlg.h
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/client/gui-sdl/optiondlg.h?rev=28842&r1=28841&r2=28842&view=diff
==============================================================================
--- branches/S2_6/client/gui-sdl/optiondlg.h    (original)
+++ branches/S2_6/client/gui-sdl/optiondlg.h    Thu Apr 23 00:16:30 2015
@@ -27,7 +27,7 @@
 struct widget *pOptions_Button;
 
 void popup_optiondlg(void);
-void popdown_optiondlg(void);
+void popdown_optiondlg(bool leave_game);
 
 void init_options_button(void);
 void enable_options_button(void);

Modified: branches/S2_6/client/gui-sdl2/dialogs.c
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/client/gui-sdl2/dialogs.c?rev=28842&r1=28841&r2=28842&view=diff
==============================================================================
--- branches/S2_6/client/gui-sdl2/dialogs.c     (original)
+++ branches/S2_6/client/gui-sdl2/dialogs.c     Thu Apr 23 00:16:30 2015
@@ -64,6 +64,7 @@
 #include "inteldlg.h"
 #include "mapctrl.h"
 #include "mapview.h"
+#include "menu.h"
 #include "messagewin.h"
 #include "optiondlg.h"
 #include "plrdlg.h"
@@ -145,7 +146,8 @@
   popdown_advanced_terrain_dialog();
   popdown_terrain_info_dialog();
   popdown_newcity_dialog();
-  popdown_optiondlg();
+  popdown_optiondlg(TRUE);
+  undraw_order_widgets();
   popdown_diplomat_dialog();
   popdown_pillage_dialog();
   popdown_incite_dialog();

Modified: branches/S2_6/client/gui-sdl2/menu.c
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/client/gui-sdl2/menu.c?rev=28842&r1=28841&r2=28842&view=diff
==============================================================================
--- branches/S2_6/client/gui-sdl2/menu.c        (original)
+++ branches/S2_6/client/gui-sdl2/menu.c        Thu Apr 23 00:16:30 2015
@@ -934,6 +934,10 @@
 void undraw_order_widgets(void)
 {
   struct widget *pTmpWidget = pBeginOrderWidgetList;
+
+  if (pTmpWidget == NULL) {
+    return;
+  }
 
   while (TRUE) {
     if (!(get_wflags(pTmpWidget) & WF_HIDDEN) && (pTmpWidget->gfx)) {

Modified: branches/S2_6/client/gui-sdl2/optiondlg.c
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/client/gui-sdl2/optiondlg.c?rev=28842&r1=28841&r2=28842&view=diff
==============================================================================
--- branches/S2_6/client/gui-sdl2/optiondlg.c   (original)
+++ branches/S2_6/client/gui-sdl2/optiondlg.c   Thu Apr 23 00:16:30 2015
@@ -239,16 +239,16 @@
   }
 
   if (ODM_MAIN == option_dialog->mode) {
-    popdown_optiondlg();
-
     if (client.conn.established) {
       /* Back to game. */
+      popdown_optiondlg(FALSE);
       enable_options_button();
       widget_redraw(pOptions_Button);
       widget_mark_dirty(pOptions_Button);
       flush_dirty();
     } else {
       /* Back to main page. */
+      popdown_optiondlg(TRUE);
       set_client_page(PAGE_MAIN);
     }
     return -1;
@@ -372,7 +372,7 @@
 static int disconnect_callback(struct widget *pWidget)
 {
   if (Main.event.button.button == SDL_BUTTON_LEFT) {
-    popdown_optiondlg();
+    popdown_optiondlg(TRUE);
     enable_options_button();
     disconnect_from_server();
   }
@@ -386,7 +386,7 @@
 static int exit_callback(struct widget *pWidget)
 {
   if (Main.event.button.button == SDL_BUTTON_LEFT) {
-    popdown_optiondlg();
+    popdown_optiondlg(TRUE);
     force_exit_from_event_loop();
   }
 
@@ -1391,9 +1391,9 @@
 }
 
 /**************************************************************************
-  ...
+  Close option dialog.
 **************************************************************************/
-void popdown_optiondlg(void)
+void popdown_optiondlg(bool leave_game)
 {
   if (NULL == option_dialog) {
     return;
@@ -1401,7 +1401,10 @@
 
   option_dialog_destroy(option_dialog);
   option_dialog = NULL;
-  enable_main_widgets();
+
+  if (!leave_game) {
+    enable_main_widgets();
+  }
 
   if (restore_meswin_dialog) {
     meswin_dialog_popup(TRUE);

Modified: branches/S2_6/client/gui-sdl2/optiondlg.h
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/client/gui-sdl2/optiondlg.h?rev=28842&r1=28841&r2=28842&view=diff
==============================================================================
--- branches/S2_6/client/gui-sdl2/optiondlg.h   (original)
+++ branches/S2_6/client/gui-sdl2/optiondlg.h   Thu Apr 23 00:16:30 2015
@@ -27,7 +27,7 @@
 struct widget *pOptions_Button;
 
 void popup_optiondlg(void);
-void popdown_optiondlg(void);
+void popdown_optiondlg(bool leave_game);
 
 void init_options_button(void);
 void enable_options_button(void);


_______________________________________________
Freeciv-commits mailing list
Freeciv-commits@gna.org
https://mail.gna.org/listinfo/freeciv-commits

Reply via email to