Fix for bug #436 - just clear last_menus when set_current(NULL) is called
[supertux.git] / src / gui / menu.cpp
index 6571e3f..cc062a0 100644 (file)
@@ -112,7 +112,7 @@ bool confirm_dialog(Surface *background, std::string text)
 
   return false;
 }
-\f
+
 void
 Menu::push_current(Menu* pmenu)
 {
@@ -144,7 +144,6 @@ Menu::pop_current()
 void
 Menu::set_current(Menu* menu)
 {
-  //last_menus.clear();
   if (current_ && current_->close == true)
     return;
 
@@ -156,6 +155,7 @@ Menu::set_current(Menu* menu)
     current_ = menu;
   }
   else if (current_) {
+    last_menus.clear();                                //NULL new menu pointer => close all menus
     current_->effect_start_time = real_time;
     current_->effect_progress = 0.0f;
     current_->close = true;
@@ -177,7 +177,7 @@ Menu::recalc_pos()
       (*i)->set_pos(SCREEN_WIDTH/2, SCREEN_HEIGHT/2);
     }
 }
-\f
+
 MenuItem::MenuItem(MenuItemKind _kind, int _id)
   : kind(_kind) , id(_id)
 {
@@ -228,7 +228,7 @@ std::string MenuItem::get_input_with_symbol(bool active_item)
 
   return string;
 }
-\f
+
 Menu::~Menu()
 {
   all_menus.remove(this);