From f274367c086f0ca898e288b7123a146c7d55e63c Mon Sep 17 00:00:00 2001 From: Bixilon Date: Mon, 18 Apr 2022 23:43:06 +0200 Subject: [PATCH] eros: fix freeze when refreshing server ping --- .../gui/eros/main/play/server/ServerListController.kt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/de/bixilon/minosoft/gui/eros/main/play/server/ServerListController.kt b/src/main/java/de/bixilon/minosoft/gui/eros/main/play/server/ServerListController.kt index 1c6b8dfdd..7049591e7 100644 --- a/src/main/java/de/bixilon/minosoft/gui/eros/main/play/server/ServerListController.kt +++ b/src/main/java/de/bixilon/minosoft/gui/eros/main/play/server/ServerListController.kt @@ -139,7 +139,7 @@ class ServerListController : EmbeddedJavaFXController(), Refreshable { account.connections -= server serverCard.connections -= connection } - JavaFXUtil.runLater { updateServer(server) } + JavaFXUtil.runLater { updateServer(server, true) } } connection.registerEvent(JavaFXEventInvoker.of { event -> @@ -200,7 +200,7 @@ class ServerListController : EmbeddedJavaFXController(), Refreshable { } } - private fun updateServer(server: Server) { + private fun updateServer(server: Server, refreshInfo: Boolean = false) { val serverType = serverType ?: return if (server !in serverType.servers) { return @@ -224,7 +224,9 @@ class ServerListController : EmbeddedJavaFXController(), Refreshable { if (wasSelected) { serverListViewFX.selectionModel.select(card) - setServerInfo(card) + if (refreshInfo) { + setServerInfo(card) + } } } @@ -316,7 +318,7 @@ class ServerListController : EmbeddedJavaFXController(), Refreshable { } isDisable = serverCard.ping.state != StatusConnectionStates.PING_DONE && serverCard.ping.state != StatusConnectionStates.ERROR ctext = TranslatableComponents.GENERAL_REFRESH - serverCard.ping::state.observeFX(this) { isDisable = serverCard.ping.state != StatusConnectionStates.PING_DONE && serverCard.ping.state != StatusConnectionStates.ERROR } + serverCard.ping::state.observeFX(this) { state -> isDisable = state != StatusConnectionStates.PING_DONE && state != StatusConnectionStates.ERROR } }, 3, 0) it.add(Button("Connect").apply { setOnAction {