From 072cbbe26bbe511b942095bc6518aecdee96fce9 Mon Sep 17 00:00:00 2001 From: elexis Date: Sun, 23 Oct 2016 14:49:32 +0000 Subject: [PATCH] Delay the exit message box in multiplayer games until after the synchronization is finished, to avoid stacking message boxes. This was SVN commit r18857. --- binaries/data/mods/public/gui/session/messages.js | 2 ++ binaries/data/mods/public/gui/session/session.js | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/binaries/data/mods/public/gui/session/messages.js b/binaries/data/mods/public/gui/session/messages.js index cf6c87d59c..25cc3ecd81 100644 --- a/binaries/data/mods/public/gui/session/messages.js +++ b/binaries/data/mods/public/gui/session/messages.js @@ -580,6 +580,8 @@ function handleNetStatusMessage(message) return; } + g_IsNetworkedActive = message.status == "active"; + let label = Engine.GetGUIObjectByName("netStatus"); let statusMessage = g_StatusMessageTypes[message.status](message); label.caption = statusMessage; diff --git a/binaries/data/mods/public/gui/session/session.js b/binaries/data/mods/public/gui/session/session.js index 2647acdc5c..9de6df69b1 100644 --- a/binaries/data/mods/public/gui/session/session.js +++ b/binaries/data/mods/public/gui/session/session.js @@ -35,6 +35,12 @@ var g_IsController; */ var g_IsNetworked = false; +/** + * Whether we have finished the synchronization and + * can start showing simulation related message boxes. + */ +var g_IsNetworkedActive = false; + /** * True if the connection to the server has been lost. */ @@ -685,6 +691,9 @@ function onSimulationUpdate() */ function confirmExit() { + if (g_IsNetworked && !g_IsNetworkedActive) + return; + closeOpenDialogs(); let subject = g_PlayerStateMessages[g_ConfirmExit] + "\n" +