summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/company_cmd.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/company_cmd.cpp b/src/company_cmd.cpp
index af7913e2c..f4eb7fb3e 100644
--- a/src/company_cmd.cpp
+++ b/src/company_cmd.cpp
@@ -104,15 +104,18 @@ void SetLocalCompany(CompanyID new_company)
/* company could also be COMPANY_SPECTATOR or OWNER_NONE */
assert(Company::IsValidID(new_company) || new_company == COMPANY_SPECTATOR || new_company == OWNER_NONE);
+ /* If actually changing to another company, several windows need closing */
+ bool switching_company = _local_company != new_company;
+
/* Delete the chat window, if you were team chatting. */
- InvalidateWindowData(WC_SEND_NETWORK_MSG, DESTTYPE_TEAM, _local_company);
+ if (switching_company) InvalidateWindowData(WC_SEND_NETWORK_MSG, DESTTYPE_TEAM, _local_company);
assert(IsLocalCompany());
_current_company = _local_company = new_company;
/* Delete any construction windows... */
- DeleteConstructionWindows();
+ if (switching_company) DeleteConstructionWindows();
/* ... and redraw the whole screen. */
MarkWholeScreenDirty();