From 940a5ea0556080d74987b57331fbed4d7a51bd07 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Sun, 5 Apr 2026 23:51:37 -0700
Subject: [PATCH] Update the lobby UI when gamepads are added or removed
---
game/lobby.cpp | 10 ++++++++++
game/lobby.h | 1 +
2 files changed, 11 insertions(+)
diff --git a/game/lobby.cpp b/game/lobby.cpp
index 376b5eef..e9a1d01a 100644
--- a/game/lobby.cpp
+++ b/game/lobby.cpp
@@ -313,6 +313,16 @@ LobbyDialogDelegate::OnPoll()
}
}
+bool
+LobbyDialogDelegate::HandleEvent(const SDL_Event &event)
+{
+ if (event.type == SDL_EVENT_GAMEPAD_ADDED ||
+ event.type == SDL_EVENT_GAMEPAD_REMOVED) {
+ m_game.UpdateUI();
+ }
+ return UIDialogDelegate::HandleEvent(event);
+}
+
void
LobbyDialogDelegate::SetHostOrJoin(void*, int value)
{
diff --git a/game/lobby.h b/game/lobby.h
index d7fd3998..c9a6555d 100644
--- a/game/lobby.h
+++ b/game/lobby.h
@@ -46,6 +46,7 @@ class LobbyDialogDelegate : public UIDialogDelegate
virtual void OnShow() override;
virtual void OnHide() override;
virtual void OnPoll() override;
+ virtual bool HandleEvent(const SDL_Event &event) override;
void SendKick(int index);