Skip to content
This repository was archived by the owner on Oct 4, 2021. It is now read-only.

Commit 7e01e90

Browse files
authored
Merge pull request #9331 from mono/fix-1022897
Ensure that ScaffolderSelected handler is only registered once. Fixes…
2 parents 4e69b03 + 9a64199 commit 7e01e90

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

main/src/addins/MonoDevelop.AspNetCore/MonoDevelop.AspNetCore.Scaffolding/ScaffolderWizard.cs

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -59,19 +59,26 @@ public ScaffolderWizard (DotNetProject project, FilePath parentFolder) : base (G
5959
var rightSideWidget = new FrameBox (rightSideImage);
6060
rightSideWidget.BackgroundColor = Styles.Wizard.PageBackgroundColor;
6161
this.RightSideWidget = new XwtControl (rightSideWidget);
62-
this.Completed += (sender, e) => Task.Run (() => OnCompletedAsync ());
6362
this.project = project;
6463
this.parentFolder = parentFolder;
6564
args.Project = project;
6665
args.ParentFolder = parentFolder;
6766

68-
selectionPage.ScaffolderSelected += (_, __) => Task.Run (async () =>
69-
await Runtime.RunInMainThread (async () => {
70-
await Xwt.Toolkit.NativeEngine.Invoke (async () => {
71-
await this.GoNext (args.CancellationToken);
72-
});
73-
}));
67+
this.Completed += (_, __) => Task.Run (() => OnCompletedAsync ());
68+
selectionPage.ScaffolderSelected -= ScaffolderSelected;
69+
selectionPage.ScaffolderSelected += ScaffolderSelected;
70+
}
7471

72+
void ScaffolderSelected (object sender, EventArgs e)
73+
{
74+
Task.Run (async () =>
75+
await Runtime.RunInMainThread (async () => {
76+
LoggingService.LogInfo ($"{args.Scaffolder.Name} selected");
77+
await Xwt.Toolkit.NativeEngine.Invoke (async () => {
78+
if (!CurrentPageIsLast)
79+
await this.GoNext (args.CancellationToken);
80+
});
81+
}));
7582
}
7683

7784
const string toolName = "dotnet-aspnet-codegenerator";

0 commit comments

Comments
 (0)