summaryrefslogtreecommitdiff
path: root/src/network/network.cpp
diff options
context:
space:
mode:
authorPatric Stout <truebrain@openttd.org>2021-10-03 11:02:28 +0200
committerGitHub <noreply@github.com>2021-10-03 11:02:28 +0200
commite4ad6329891c9235336649ef4412b2ce0a073af8 (patch)
tree40e441dc003fe6383de2123c82bc5a595881a043 /src/network/network.cpp
parent2144cd98a34efd7b47156d6f43ee5de7d6216d86 (diff)
downloadopenttd-e4ad6329891c9235336649ef4412b2ce0a073af8.tar.xz
Add: [Network] Keep the refresh button in lowered state while refreshing (#9600)
This gives user visual feedback that the refresh is still pending, and prevents people from clicking again and again thinking nothing is happening. This is especially true for connections that fall back to TURN, as that takes a few seconds to kick in. Additionally, prevent clicking on the button again while a refresh is pending. This is only delaying a successful result.
Diffstat (limited to 'src/network/network.cpp')
-rw-r--r--src/network/network.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/network/network.cpp b/src/network/network.cpp
index 09b748fc5..109a2cce7 100644
--- a/src/network/network.cpp
+++ b/src/network/network.cpp
@@ -635,6 +635,7 @@ public:
{
NetworkGameList *item = NetworkGameListAddItem(connection_string);
item->status = NGLS_OFFLINE;
+ item->refreshing = false;
UpdateNetworkGameWindow();
}
@@ -653,6 +654,10 @@ void NetworkQueryServer(const std::string &connection_string)
{
if (!_network_available) return;
+ /* Mark the entry as refreshing, so the GUI can show the refresh is pending. */
+ NetworkGameList *item = NetworkGameListAddItem(connection_string);
+ item->refreshing = true;
+
new TCPQueryConnecter(connection_string);
}