diff --git a/src/SharpIDE.Application/Features/Events/GlobalEvents.cs b/src/SharpIDE.Application/Features/Events/GlobalEvents.cs index c096c65..0c0003f 100644 --- a/src/SharpIDE.Application/Features/Events/GlobalEvents.cs +++ b/src/SharpIDE.Application/Features/Events/GlobalEvents.cs @@ -2,6 +2,9 @@ public static class GlobalEvents { - public static event Func ProjectsRunningChanged = () => Task.CompletedTask; + public static event Func ProjectsRunningChanged = () => Task.CompletedTask; public static void InvokeProjectsRunningChanged() => ProjectsRunningChanged?.Invoke(); + + public static event Func StartedRunningProject = () => Task.CompletedTask; + public static void InvokeStartedRunningProject() => StartedRunningProject?.Invoke(); } diff --git a/src/SharpIDE.Application/Features/Run/RunService.cs b/src/SharpIDE.Application/Features/Run/RunService.cs index f2990d0..947a5e5 100644 --- a/src/SharpIDE.Application/Features/Run/RunService.cs +++ b/src/SharpIDE.Application/Features/Run/RunService.cs @@ -52,6 +52,7 @@ public class RunService project.Running = true; project.OpenInRunPanel = true; GlobalEvents.InvokeProjectsRunningChanged(); + GlobalEvents.InvokeStartedRunningProject(); await process.WaitForExitAsync().WaitAsync(project.RunningCancellationTokenSource.Token).ConfigureAwait(ConfigureAwaitOptions.SuppressThrowing); if (project.RunningCancellationTokenSource.IsCancellationRequested) { diff --git a/src/SharpIDE.Photino/Layout/MainLayout.razor b/src/SharpIDE.Photino/Layout/MainLayout.razor index 97fc08e..afde863 100644 --- a/src/SharpIDE.Photino/Layout/MainLayout.razor +++ b/src/SharpIDE.Photino/Layout/MainLayout.razor @@ -1,4 +1,5 @@ @using SharpIDE.Application.Features.Build +@using SharpIDE.Application.Features.Events @using SharpIDE.Application.Features.SolutionDiscovery @using SharpIDE.Application.Features.SolutionDiscovery.VsPersistence @using SharpIDE.Photino.Models @@ -123,6 +124,14 @@ protected override async Task OnInitializedAsync() { await LoadSolutionFromInteractivePicker(AppState.IdeSettings.AutoOpenLastSolution); + GlobalEvents.StartedRunningProject += OnStartedRunningProject; + } + + private async Task OnStartedRunningProject() + { + _selectedBottomPanel = BottomPanelType.Run; + _bottomDrawerOpen = true; + await InvokeAsync(StateHasChanged); } private async Task LoadSolutionFromInteractivePicker() => await LoadSolutionFromInteractivePicker(false);