diff options
author | Patric Stout <truebrain@openttd.org> | 2021-10-03 11:02:28 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-03 11:02:28 +0200 |
commit | e4ad6329891c9235336649ef4412b2ce0a073af8 (patch) | |
tree | 40e441dc003fe6383de2123c82bc5a595881a043 /src/network/network_gui.cpp | |
parent | 2144cd98a34efd7b47156d6f43ee5de7d6216d86 (diff) | |
download | openttd-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_gui.cpp')
-rw-r--r-- | src/network/network_gui.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/network/network_gui.cpp b/src/network/network_gui.cpp index 03fd0ce5c..6bca0c756 100644 --- a/src/network/network_gui.cpp +++ b/src/network/network_gui.cpp @@ -613,6 +613,8 @@ public: sel->info.clients_on >= sel->info.clients_max || // Server full !sel->info.compatible); // Revision mismatch + this->SetWidgetLoweredState(WID_NG_REFRESH, sel != nullptr && sel->refreshing); + /* 'NewGRF Settings' button invisible if no NewGRF is used */ this->GetWidget<NWidgetStacked>(WID_NG_NEWGRF_SEL)->SetDisplayedPlane(sel == nullptr || sel->status != NGLS_ONLINE || sel->info.grfconfig == nullptr); this->GetWidget<NWidgetStacked>(WID_NG_NEWGRF_MISSING_SEL)->SetDisplayedPlane(sel == nullptr || sel->status != NGLS_ONLINE || sel->info.grfconfig == nullptr || !sel->info.version_compatible || sel->info.compatible); @@ -790,7 +792,7 @@ public: break; case WID_NG_REFRESH: // Refresh - if (this->server != nullptr) NetworkQueryServer(this->server->connection_string); + if (this->server != nullptr && !this->server->refreshing) NetworkQueryServer(this->server->connection_string); break; case WID_NG_NEWGRF: // NewGRF Settings |