From 393fb8e46b8ad9bb65dbea391ad225d0fcfffcac Mon Sep 17 00:00:00 2001 From: rubidium Date: Fri, 22 Apr 2011 15:53:40 +0000 Subject: (svn r22361) -Codechange: delete the client list popup when the client got removed (instead of previously selecting some other client) --- src/company_cmd.cpp | 2 +- src/network/network_gui.cpp | 6 +++--- src/network/network_server.cpp | 1 + 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/company_cmd.cpp b/src/company_cmd.cpp index 4ccb9ae03..56920a270 100644 --- a/src/company_cmd.cpp +++ b/src/company_cmd.cpp @@ -556,7 +556,7 @@ Company *DoStartupNewCompany(bool is_ai, CompanyID company = INVALID_COMPANY) GeneratePresidentName(c); SetWindowDirty(WC_GRAPH_LEGEND, 0); - SetWindowDirty(WC_CLIENT_LIST_POPUP, 0); + SetWindowClassesDirty(WC_CLIENT_LIST_POPUP); SetWindowDirty(WC_CLIENT_LIST, 0); BuildOwnerLegend(); InvalidateWindowData(WC_SMALLMAP, 0, 1); diff --git a/src/network/network_gui.cpp b/src/network/network_gui.cpp index 04e300386..2f4af939b 100644 --- a/src/network/network_gui.cpp +++ b/src/network/network_gui.cpp @@ -1797,7 +1797,7 @@ struct NetworkClientListPopupWindow : Window { } this->flags4 &= ~WF_WHITE_BORDER_MASK; - this->InitNested(desc, 0); + this->InitNested(desc, client_id); } virtual Point OnInitialPosition(const WindowDesc *desc, int16 sm_width, int16 sm_height, int window_number) @@ -1852,7 +1852,7 @@ struct NetworkClientListPopupWindow : Window { if (ci != NULL) this->actions[index].proc(ci); } - DeleteWindowById(WC_CLIENT_LIST_POPUP, 0); + DeleteWindowByClass(WC_CLIENT_LIST_POPUP); } } }; @@ -1862,7 +1862,7 @@ struct NetworkClientListPopupWindow : Window { */ static void PopupClientList(ClientID client_id, int x, int y) { - DeleteWindowById(WC_CLIENT_LIST_POPUP, 0); + DeleteWindowByClass(WC_CLIENT_LIST_POPUP); if (NetworkFindClientInfoFromClientID(client_id) == NULL) return; diff --git a/src/network/network_server.cpp b/src/network/network_server.cpp index f4d5d6a82..eef194a98 100644 --- a/src/network/network_server.cpp +++ b/src/network/network_server.cpp @@ -253,6 +253,7 @@ NetworkRecvStatus ServerNetworkGameSocketHandler::CloseConnection(NetworkRecvSta extern byte _network_clients_connected; _network_clients_connected--; + DeleteWindowById(WC_CLIENT_LIST_POPUP, this->client_id); SetWindowDirty(WC_CLIENT_LIST, 0); this->SendPackets(true); -- cgit v1.2.3-54-g00ecf