From afd7ded01e67ac3ff5b92a274dbeee40ed51a3bc Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Thu, 20 Nov 2014 11:02:06 +0100 Subject: [PATCH] Debug Server: kill team when debug alert is escaped B_CLOSE_ON_ESCAPE makes alert->Go return -1. Handle this correctly and kill the team. Fixes #9983. --- src/servers/debug/DebugServer.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/servers/debug/DebugServer.cpp b/src/servers/debug/DebugServer.cpp index ef4c10cf50..aa0963d93a 100644 --- a/src/servers/debug/DebugServer.cpp +++ b/src/servers/debug/DebugServer.cpp @@ -818,17 +818,18 @@ TeamDebugHandler::_HandleMessage(DebugMessage *message) BAlert *alert = new BAlert(NULL, buffer.String(), B_TRANSLATE("Terminate"), B_TRANSLATE("Debug"), B_TRANSLATE("Save report"), B_WIDTH_AS_USUAL, B_WARNING_ALERT); - alert->SetFlags(alert->Flags() | B_CLOSE_ON_ESCAPE); - debugAction = alert->Go(); - _NotifyRegistrar(fTeam, false, debugAction != kActionKillTeam); #else BAlert *alert = new BAlert(NULL, buffer.String(), B_TRANSLATE("Kill"), B_TRANSLATE("Debug"), NULL, B_WIDTH_AS_USUAL, B_WARNING_ALERT); +#endif alert->SetFlags(alert->Flags() | B_CLOSE_ON_ESCAPE); debugAction = alert->Go(); + if (debugAction < 0) { + // Happens when closed by escape key + debugAction = kActionKillTeam; + } _NotifyRegistrar(fTeam, false, debugAction != kActionKillTeam); -#endif } return debugAction;