diff --git a/OpenRA.Mods.Common/Widgets/Logic/Ingame/GameInfoLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Ingame/GameInfoLogic.cs index 06ed02257d..f2ce02d258 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Ingame/GameInfoLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Ingame/GameInfoLogic.cs @@ -40,12 +40,13 @@ namespace OpenRA.Mods.Common.Widgets.Logic readonly World world; readonly ModData modData; readonly Action hideMenu; + readonly Action closeMenu; readonly IObjectivesPanel iop; IngameInfoPanel activePanel; readonly bool hasError; [ObjectCreator.UseCtor] - public GameInfoLogic(Widget widget, ModData modData, World world, IngameInfoPanel initialPanel, Action hideMenu) + public GameInfoLogic(Widget widget, ModData modData, World world, IngameInfoPanel initialPanel, Action hideMenu, Action closeMenu) { var panels = new Dictionary Setup)>() { @@ -59,6 +60,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic this.world = world; this.modData = modData; this.hideMenu = hideMenu; + this.closeMenu = closeMenu; activePanel = initialPanel; var visiblePanels = new List(); @@ -140,7 +142,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic var panel = hasError ? "SCRIPT_ERROR_PANEL" : iop.PanelName; Game.LoadWidget(world, panel, objectivesPanelContainer, new WidgetArgs() { - { "hideMenu", hideMenu } + { "hideMenu", hideMenu }, + { "closeMenu", closeMenu }, }); } diff --git a/OpenRA.Mods.Common/Widgets/Logic/Ingame/GameInfoStatsLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Ingame/GameInfoStatsLogic.cs index c91e35b4ae..92471b8537 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Ingame/GameInfoStatsLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Ingame/GameInfoStatsLogic.cs @@ -86,7 +86,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic const string VoteKickVoteCancel = "dialog-vote-kick.vote-cancel"; [ObjectCreator.UseCtor] - public GameInfoStatsLogic(Widget widget, ModData modData, World world, OrderManager orderManager, WorldRenderer worldRenderer, Action hideMenu) + public GameInfoStatsLogic(Widget widget, ModData modData, World world, OrderManager orderManager, WorldRenderer worldRenderer, Action hideMenu, Action closeMenu) { var player = world.LocalPlayer; var playerPanel = widget.Get("PLAYER_LIST"); @@ -163,6 +163,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic { orderManager.IssueOrder(Order.Command($"vote_kick {client.Index} {true}")); hideMenu(false); + closeMenu(); }, confirmText: VoteKickVoteStart, onCancel: () => hideMenu(false)); @@ -178,6 +179,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic { orderManager.IssueOrder(Order.Command($"vote_kick {client.Index} {true}")); hideMenu(false); + closeMenu(); }, confirmText: VoteKickVoteFor, onOther: () => @@ -185,6 +187,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic Ui.CloseWindow(); orderManager.IssueOrder(Order.Command($"vote_kick {client.Index} {false}")); hideMenu(false); + closeMenu(); }, otherText: VoteKickVoteAgainst, onCancel: () => hideMenu(false), diff --git a/OpenRA.Mods.Common/Widgets/Logic/Ingame/IngameMenuLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Ingame/IngameMenuLogic.cs index 3c22f8f10b..c4a8540b58 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Ingame/IngameMenuLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Ingame/IngameMenuLogic.cs @@ -200,7 +200,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic var gameInfoPanel = Game.LoadWidget(world, "GAME_INFO_PANEL", panelRoot, new WidgetArgs() { { "initialPanel", initialPanel }, - { "hideMenu", requestHideMenu } + { "hideMenu", requestHideMenu }, + { "closeMenu", CloseMenu }, }); gameInfoPanel.IsVisible = () => !hideMenu;