diff --git a/src/Avalonia.Controls/Application.cs b/src/Avalonia.Controls/Application.cs index 6c35c2749e..54c576bb76 100644 --- a/src/Avalonia.Controls/Application.cs +++ b/src/Avalonia.Controls/Application.cs @@ -30,7 +30,7 @@ namespace Avalonia /// method. /// - Tracks the lifetime of the application. /// - public class Application : AvaloniaObject, IDataContextProvider, IGlobalDataTemplates, IGlobalStyles, IResourceHost + public class Application : AvaloniaObject, IDataContextProvider, IGlobalDataTemplates, IGlobalStyles, IResourceHost, IApplicationPlatformEvents { /// /// The application-global data templates. @@ -249,15 +249,9 @@ namespace Avalonia public virtual void OnFrameworkInitializationCompleted() { - var applicationPlatform = AvaloniaLocator.Current.GetService(); - - if (applicationPlatform != null) - { - applicationPlatform.FilesOpened = OnFilesOpened; - } } - - private void OnFilesOpened(string[] urls) + + void IApplicationPlatformEvents.RaiseUrlsOpened(string[] urls) { UrlsOpened?.Invoke(this, new UrlOpenedEventArgs (urls)); } @@ -300,5 +294,6 @@ namespace Avalonia get => _name; set => SetAndRaise(NameProperty, ref _name, value); } + } } diff --git a/src/Avalonia.Controls/Platform/IApplicationPlatform.cs b/src/Avalonia.Controls/Platform/IApplicationPlatform.cs deleted file mode 100644 index ec193ce0d6..0000000000 --- a/src/Avalonia.Controls/Platform/IApplicationPlatform.cs +++ /dev/null @@ -1,9 +0,0 @@ -using System; - -namespace Avalonia.Platform -{ - public interface IApplicationPlatform - { - Action FilesOpened { get; set; } - } -} diff --git a/src/Avalonia.Controls/Platform/IApplicationPlatformEvents.cs b/src/Avalonia.Controls/Platform/IApplicationPlatformEvents.cs new file mode 100644 index 0000000000..a8d3a3b3ac --- /dev/null +++ b/src/Avalonia.Controls/Platform/IApplicationPlatformEvents.cs @@ -0,0 +1,7 @@ +namespace Avalonia.Platform +{ + public interface IApplicationPlatformEvents + { + void RaiseUrlsOpened(string[] urls); + } +} diff --git a/src/Avalonia.Native/AvaloniaNativeApplicationPlatform.cs b/src/Avalonia.Native/AvaloniaNativeApplicationPlatform.cs index ff7c4fdd6e..9579aa93b1 100644 --- a/src/Avalonia.Native/AvaloniaNativeApplicationPlatform.cs +++ b/src/Avalonia.Native/AvaloniaNativeApplicationPlatform.cs @@ -4,13 +4,11 @@ using Avalonia.Platform; namespace Avalonia.Native { - internal class AvaloniaNativeApplicationPlatform : CallbackBase, IApplicationPlatform, IAvnApplicationEvents + internal class AvaloniaNativeApplicationPlatform : CallbackBase, IAvnApplicationEvents { - public Action FilesOpened { get; set; } - void IAvnApplicationEvents.FilesOpened(IAvnStringArray urls) { - FilesOpened?.Invoke(urls.ToStringArray()); + ((IApplicationPlatformEvents)Application.Current).RaiseUrlsOpened(urls.ToStringArray()); } } } diff --git a/src/Avalonia.Native/AvaloniaNativePlatform.cs b/src/Avalonia.Native/AvaloniaNativePlatform.cs index f9806f02a4..82a845ffc1 100644 --- a/src/Avalonia.Native/AvaloniaNativePlatform.cs +++ b/src/Avalonia.Native/AvaloniaNativePlatform.cs @@ -98,7 +98,6 @@ namespace Avalonia.Native } AvaloniaLocator.CurrentMutable - .Bind().ToConstant(applicationPlatform) .Bind() .ToConstant(new PlatformThreadingInterface(_factory.CreatePlatformThreadingInterface())) .Bind().ToConstant(new CursorFactory(_factory.CreateCursorFactory()))