Merge pull request #9852 from RoosterDragon/event-handler-removals

Detach some event handlers
This commit is contained in:
Oliver Brakmann
2015-11-05 22:46:42 +01:00
6 changed files with 53 additions and 28 deletions

View File

@@ -207,6 +207,8 @@ namespace OpenRA.Mods.Common.Traits
foreach (var kv in spriteLayers.Values)
kv.Dispose();
Map.MapResources.Value.CellEntryChanged -= UpdateCell;
disposed = true;
}
}

View File

@@ -294,6 +294,8 @@ namespace OpenRA.Mods.Common.Traits
foreach (var kv in spriteLayers.Values)
kv.Dispose();
RenderContent.CellEntryChanged -= UpdateSpriteLayers;
disposed = true;
}

View File

@@ -217,17 +217,19 @@ namespace OpenRA.Mods.Common.Widgets.Logic
}
}
Game.OnRemoteDirectConnect += (host, port) =>
Game.OnRemoteDirectConnect += OnRemoteDirectConnect;
}
void OnRemoteDirectConnect(string host, int port)
{
menuType = MenuType.None;
Ui.OpenWindow("MULTIPLAYER_PANEL", new WidgetArgs
{
menuType = MenuType.None;
Ui.OpenWindow("MULTIPLAYER_PANEL", new WidgetArgs
{
{ "onStart", RemoveShellmapUI },
{ "onExit", () => menuType = MenuType.Main },
{ "directConnectHost", host },
{ "directConnectPort", port },
});
};
{ "onStart", RemoveShellmapUI },
{ "onExit", () => menuType = MenuType.Main },
{ "directConnectHost", host },
{ "directConnectPort", port },
});
}
void LoadMapIntoEditor(Map map)
@@ -362,5 +364,12 @@ namespace OpenRA.Mods.Common.Widgets.Logic
OpenSkirmishLobbyPanel,
() => { Game.CloseServer(); menuType = MenuType.Main; });
}
protected override void Dispose(bool disposing)
{
if (disposing)
Game.OnRemoteDirectConnect -= OnRemoteDirectConnect;
base.Dispose(disposing);
}
}
}

View File

@@ -442,5 +442,12 @@ namespace OpenRA.Mods.Common.Widgets
var v = (int)((p.Y - mapRect.Y) / previewScale) + world.Map.Bounds.Top;
return new MPos(u, v).ToCPos(world.Map);
}
public override void Removed()
{
base.Removed();
world.Map.MapTiles.Value.CellEntryChanged -= UpdateTerrainCell;
world.Map.CustomTerrain.CellEntryChanged -= UpdateTerrainCell;
}
}
}