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);