From ff23f395914307508a6b9cc06e2fd04fd450b67a Mon Sep 17 00:00:00 2001 From: Matt Parker <61717342+MattParkerDev@users.noreply.github.com> Date: Sat, 9 Aug 2025 02:35:35 +1000 Subject: [PATCH] open run panel on start --- src/SharpIDE.Application/Features/Events/GlobalEvents.cs | 5 ++++- src/SharpIDE.Application/Features/Run/RunService.cs | 1 + src/SharpIDE.Photino/Layout/MainLayout.razor | 9 +++++++++ 3 files changed, 14 insertions(+), 1 deletion(-) 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);