diff --git a/OpenRA.Game/Widgets/ScrollItemWidget.cs b/OpenRA.Game/Widgets/ScrollItemWidget.cs index df9f845c1b..717db47cb6 100644 --- a/OpenRA.Game/Widgets/ScrollItemWidget.cs +++ b/OpenRA.Game/Widgets/ScrollItemWidget.cs @@ -65,9 +65,10 @@ namespace OpenRA.Widgets return w; } - public static ScrollItemWidget Setup(string key, ScrollItemWidget template, Func isSelected, Action onClick) + public static ScrollItemWidget Setup(string key, ScrollItemWidget template, Func isSelected, Action onClick, Action onDoubleClick) { var w = Setup(template, isSelected, onClick); + w.OnDoubleClick = onDoubleClick; w.ItemKey = key; return w; } diff --git a/OpenRA.Mods.RA/Widgets/Logic/MapChooserLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/MapChooserLogic.cs index df448c1701..1a74fc5d17 100644 --- a/OpenRA.Mods.RA/Widgets/Logic/MapChooserLogic.cs +++ b/OpenRA.Mods.RA/Widgets/Logic/MapChooserLogic.cs @@ -60,7 +60,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic { var item = ScrollItemWidget.Setup(template, () => gameMode == ii.First, - () => { gameMode = ii.First; EnumerateMaps(); }); + () => { gameMode = ii.First; EnumerateMaps(onSelect); }); item.Get("LABEL").GetText = () => showItem(ii); return item; }; @@ -83,10 +83,10 @@ namespace OpenRA.Mods.RA.Widgets.Logic randomMapButton.IsDisabled = () => visibleMaps == null || visibleMaps.Count == 0; } - EnumerateMaps(); + EnumerateMaps(onSelect); } - void EnumerateMaps() + void EnumerateMaps(Action onSelect) { var maps = Game.modData.AvailableMaps .Where(kv => kv.Value.Selectable) @@ -98,7 +98,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic foreach (var kv in maps) { var m = kv.Value; - var item = ScrollItemWidget.Setup(kv.Key, itemTemplate, () => m == map, () => map = m); + var item = ScrollItemWidget.Setup(kv.Key, itemTemplate, () => m == map, () => map = m, () => { Ui.CloseWindow(); onSelect(m); }); var titleLabel = item.Get("TITLE"); titleLabel.GetText = () => m.Title; diff --git a/OpenRA.Mods.RA/Widgets/Logic/MusicPlayerLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/MusicPlayerLogic.cs index 4fb5f5039a..56b1af0cf1 100644 --- a/OpenRA.Mods.RA/Widgets/Logic/MusicPlayerLogic.cs +++ b/OpenRA.Mods.RA/Widgets/Logic/MusicPlayerLogic.cs @@ -98,7 +98,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic currentSong = song; // TODO: We leak the currentSong MusicInfo across map load, so compare the Filename instead. - var item = ScrollItemWidget.Setup(song.Filename, itemTemplate, () => currentSong.Filename == song.Filename, () => { currentSong = song; Play(); }); + var item = ScrollItemWidget.Setup(song.Filename, itemTemplate, () => currentSong.Filename == song.Filename, () => { currentSong = song; Play(); }, () => {}); item.Get("TITLE").GetText = () => song.Title; item.Get("LENGTH").GetText = () => SongLengthLabel(song); musicList.AddChild(item);