Maelstrom: Hide the controls dropdown when leaving hosting mode

https://github.com/libsdl-org/Maelstrom/commit/0757579444cf4c5d28d0c5d86ea2319befd9d3f1

From 0757579444cf4c5d28d0c5d86ea2319befd9d3f1 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Fri, 25 Nov 2011 08:41:14 -0500
Subject: [PATCH] Hide the controls dropdown when leaving hosting mode

---
 game/lobby.cpp | 10 +++++++---
 game/lobby.h   |  1 +
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/game/lobby.cpp b/game/lobby.cpp
index dbe21b22..22a8394c 100644
--- a/game/lobby.cpp
+++ b/game/lobby.cpp
@@ -211,7 +211,7 @@ LobbyDialogDelegate::OnLoad()
 		}
 	}
 
-	UIElement *controlDropdown = m_dialog->GetElement<UIElement>("control_dropdown");
+	m_controlDropdown = m_dialog->GetElement<UIElement>("control_dropdown");
 
 	count = SDL_arraysize(m_gameInfoPlayers);
 	for (i = 0; i < count; ++i) {
@@ -221,8 +221,8 @@ LobbyDialogDelegate::OnLoad()
 		}
 
 		UIElement *controlButton = m_gameInfoPlayers[i]->GetElement<UIElement>("control");
-		if (controlButton && controlDropdown) {
-			controlButton->SetClickCallback(new ControlClickCallback(this, controlButton, controlDropdown, m_game, i));
+		if (controlButton && m_controlDropdown) {
+			controlButton->SetClickCallback(new ControlClickCallback(this, controlButton, m_controlDropdown, m_game, i));
 		}
 	}
 
@@ -407,6 +407,10 @@ LobbyDialogDelegate::SetState(LOBBY_STATE state)
 		RemoveGame();
 	}
 	if (m_state == STATE_HOSTING) {
+		if (m_controlDropdown) {
+			m_controlDropdown->Hide();
+		}
+
 		// Save the control preferences
 		for (i = 0; i < MAX_PLAYERS; ++i) {
 			char name[128];
diff --git a/game/lobby.h b/game/lobby.h
index 62febaf4..5b29078d 100644
--- a/game/lobby.h
+++ b/game/lobby.h
@@ -115,6 +115,7 @@ class LobbyDialogDelegate : public UIDialogDelegate
 	UIElement *m_gameInfoArea;
 	UIElement *m_gameInfoPlayers[MAX_PLAYERS];
 	UIElement *m_playButton;
+	UIElement *m_controlDropdown;
 
 protected:
 	void SetState(LOBBY_STATE state);