From 5f34f9cb784e98ebc0db9df5403f2830618b8041 Mon Sep 17 00:00:00 2001 From: MrS-ibra Date: Sun, 22 Mar 2026 21:19:50 +0300 Subject: [PATCH] Fix text entry focus issues across lobby UI --- .../Source/GameClient/GUI/GUICallbacks/Menus/PopupHostGame.cpp | 2 +- .../Source/GameClient/GUI/GUICallbacks/Menus/PopupJoinGame.cpp | 2 +- .../GameClient/GUI/GUICallbacks/Menus/WOLBuddyOverlay.cpp | 1 + .../GameClient/GUI/GUICallbacks/Menus/WOLGameSetupMenu.cpp | 3 ++- .../Source/GameClient/GUI/GUICallbacks/Menus/WOLLobbyMenu.cpp | 3 +-- 5 files changed, 6 insertions(+), 5 deletions(-) diff --git a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/PopupHostGame.cpp b/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/PopupHostGame.cpp index 57cc9045cbd..ffe25f7ff57 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/PopupHostGame.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/PopupHostGame.cpp @@ -395,7 +395,7 @@ void PopupHostGameInit( WindowLayout *layout, void *userData ) GadgetCheckBoxSetChecked( checkBoxLimitArmies, usingStats? FALSE : customPref.getFactionsLimited() ); #endif - TheWindowManager->winSetFocus( parentPopup ); + TheWindowManager->winSetFocus(textEntryGameName); TheWindowManager->winSetModal( parentPopup ); #if defined(GENERALS_ONLINE) diff --git a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/PopupJoinGame.cpp b/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/PopupJoinGame.cpp index 0a33d8ef15c..6da24515013 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/PopupJoinGame.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/PopupJoinGame.cpp @@ -112,7 +112,7 @@ void PopupJoinGameInit( WindowLayout *layout, void *userData ) UnicodeString lobbyName(from_utf8(lobbyTryingToJoin.name).c_str()); GadgetStaticTextSetText(staticTextGameName, lobbyName); - TheWindowManager->winSetFocus( parentPopup ); + TheWindowManager->winSetFocus(textEntryGamePassword); TheWindowManager->winSetModal( parentPopup ); } diff --git a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/WOLBuddyOverlay.cpp b/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/WOLBuddyOverlay.cpp index d4e0be2639a..772779ca549 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/WOLBuddyOverlay.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/WOLBuddyOverlay.cpp @@ -1318,6 +1318,7 @@ WindowMsgHandledType WOLBuddyOverlaySystem( GameWindow *window, UnsignedInt msg, pSocialInterface->ClearUnreadChatMessagesForUser(profileID); updateBuddyInfo(true, true); // use cache } + TheWindowManager->winSetFocus(buddyControls.textEntryEdit); } } } diff --git a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/WOLGameSetupMenu.cpp b/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/WOLGameSetupMenu.cpp index 5fa5b071487..46d35165fda 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/WOLGameSetupMenu.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/WOLGameSetupMenu.cpp @@ -1331,6 +1331,7 @@ void WOLDisplaySlotList( void ) comboBoxPlayerTemplate, comboBoxTeam, buttonAccept, buttonStart, buttonMapStartPosition ); WOLDisplayGameOptions(); + TheWindowManager->winSetFocus(textEntryChat); for (Int i=0; iwinSetFocus( textEntryChat ); raiseMessageBoxes = true; TheTransitionHandler->setGroup("GameSpyGameOptionsMenuFade"); + TheWindowManager->winSetFocus(textEntryChat); #if defined(GENERALS_ONLINE) // NGMP: Did we just enter a lobby with modified camera height? diff --git a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/WOLLobbyMenu.cpp b/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/WOLLobbyMenu.cpp index ef2d1c63be6..81c04dcd7d1 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/WOLLobbyMenu.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/WOLLobbyMenu.cpp @@ -1392,8 +1392,6 @@ void WOLLobbyMenuInit( WindowLayout *layout, void *userData ) } */ - // Set Keyboard to chat window - TheWindowManager->winSetFocus( textEntryChat ); raiseMessageBoxes = true; TheLobbyQueuedUTMs.clear(); @@ -1742,6 +1740,7 @@ void WOLLobbyMenuUpdate( WindowLayout * layout, void *userData) { TheTransitionHandler->remove("MainMenuDefaultMenuLogoFade"); TheTransitionHandler->setGroup("WOLCustomLobbyFade"); + TheWindowManager->winSetFocus(textEntryChat); initialGadgetDelay = 2; justEntered = FALSE; }