From 1060a60dbefca569f26e29eb4bb85123f5d4f33a Mon Sep 17 00:00:00 2001 From: Jose Medrano Date: Fri, 10 Jan 2020 16:19:06 +0100 Subject: [PATCH] Adds some handlers and project creation state toggles in ProjectOperations Fixes VSTS #984930 - Get to code can be re-entered during new project flow --- .../MonoDevelop.Ide/ProjectOperations.cs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs index d324842b723..fdc0b286d02 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs @@ -69,7 +69,11 @@ public partial class ProjectOperations: Service RootWorkspace workspace; SelectReferenceDialog selDialog = null; - + + public event EventHandler BeforeCreateNewSolution; + public event EventHandler AfterCreateNewSolution; + public bool IsCreatingNewSolution { get; private set; } + internal ProjectOperations () { } @@ -749,8 +753,17 @@ public async Task NewSolution (string defaultTemplate, bool showTemplateSe newProjectDialog.ShowTemplateSelection = showTemplateSelection; var show = newProjectDialog.Show (); if (show) { - WelcomePage.WelcomePageService.HideWelcomePageOrWindow (); - return await newProjectDialog.ProjectCreation; + try { + IsCreatingNewSolution = true; + BeforeCreateNewSolution?.Invoke (this, EventArgs.Empty); + + WelcomePage.WelcomePageService.HideWelcomePageOrWindow (); + var isProjectCreated = await newProjectDialog.ProjectCreation; + return isProjectCreated; + } finally { + IsCreatingNewSolution = false; + AfterCreateNewSolution?.Invoke (this, EventArgs.Empty); + } } return false; }