diff --git a/api/Avalonia.nupkg.xml b/api/Avalonia.nupkg.xml
index 5d8cdee507..fbf22358ed 100644
--- a/api/Avalonia.nupkg.xml
+++ b/api/Avalonia.nupkg.xml
@@ -1,6 +1,24 @@
-
+
+
+ CP0002
+ M:Avalonia.Dialogs.Internal.ManagedFileChooserFilterViewModel.#ctor(Avalonia.Platform.Storage.FilePickerFileType)
+ baseline/Avalonia/lib/net6.0/Avalonia.Dialogs.dll
+ current/Avalonia/lib/net6.0/Avalonia.Dialogs.dll
+
+
+ CP0002
+ M:Avalonia.Dialogs.Internal.ManagedFileChooserFilterViewModel.#ctor(Avalonia.Platform.Storage.FilePickerFileType)
+ baseline/Avalonia/lib/net8.0/Avalonia.Dialogs.dll
+ current/Avalonia/lib/net8.0/Avalonia.Dialogs.dll
+
+
+ CP0002
+ M:Avalonia.Dialogs.Internal.ManagedFileChooserFilterViewModel.#ctor(Avalonia.Platform.Storage.FilePickerFileType)
+ baseline/Avalonia/lib/netstandard2.0/Avalonia.Dialogs.dll
+ current/Avalonia/lib/netstandard2.0/Avalonia.Dialogs.dll
+
CP0006
M:Avalonia.Input.Platform.IClipboard.SetDataAsync(Avalonia.Input.IAsyncDataTransfer)
@@ -31,6 +49,12 @@
baseline/Avalonia/lib/net6.0/Avalonia.Base.dll
current/Avalonia/lib/net6.0/Avalonia.Base.dll
+
+ CP0006
+ M:Avalonia.Platform.Storage.IStorageProvider.SaveFilePickerWithResultAsync(Avalonia.Platform.Storage.FilePickerSaveOptions)
+ baseline/Avalonia/lib/net6.0/Avalonia.Base.dll
+ current/Avalonia/lib/net6.0/Avalonia.Base.dll
+
CP0006
M:Avalonia.OpenGL.IGlExternalSemaphore.SignalTimelineSemaphore(Avalonia.OpenGL.IGlExternalImageTexture,System.UInt64)
@@ -79,6 +103,12 @@
baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
+ CP0006
+ M:Avalonia.Platform.Storage.IStorageProvider.SaveFilePickerWithResultAsync(Avalonia.Platform.Storage.FilePickerSaveOptions)
+ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
+ current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
CP0006
M:Avalonia.OpenGL.IGlExternalSemaphore.SignalTimelineSemaphore(Avalonia.OpenGL.IGlExternalImageTexture,System.UInt64)
@@ -127,6 +157,12 @@
baseline/Avalonia/lib/netstandard2.0/Avalonia.Base.dll
current/Avalonia/lib/netstandard2.0/Avalonia.Base.dll
+
+ CP0006
+ M:Avalonia.Platform.Storage.IStorageProvider.SaveFilePickerWithResultAsync(Avalonia.Platform.Storage.FilePickerSaveOptions)
+ baseline/Avalonia/lib/netstandard2.0/Avalonia.Base.dll
+ current/Avalonia/lib/netstandard2.0/Avalonia.Base.dll
+
CP0006
M:Avalonia.OpenGL.IGlExternalSemaphore.SignalTimelineSemaphore(Avalonia.OpenGL.IGlExternalImageTexture,System.UInt64)
@@ -145,4 +181,4 @@
baseline/Avalonia/lib/netstandard2.0/Avalonia.OpenGL.dll
current/Avalonia/lib/netstandard2.0/Avalonia.OpenGL.dll
-
+
\ No newline at end of file
diff --git a/native/Avalonia.Native/src/OSX/StorageProvider.mm b/native/Avalonia.Native/src/OSX/StorageProvider.mm
index 4a82eeaea7..570281fdfd 100644
--- a/native/Avalonia.Native/src/OSX/StorageProvider.mm
+++ b/native/Avalonia.Native/src/OSX/StorageProvider.mm
@@ -320,12 +320,22 @@ public:
}
auto handler = ^(NSModalResponse result) {
+ int selectedIndex = -1;
+ if (panel.accessoryView != nil)
+ {
+ auto popup = [panel.accessoryView viewWithTag:kFileTypePopupTag];
+ if ([popup isKindOfClass:[NSPopUpButton class]])
+ {
+ selectedIndex = (int)[(NSPopUpButton*)popup indexOfSelectedItem];
+ }
+ }
+
if(result == NSFileHandlingPanelOKButton)
{
auto url = [panel URL];
auto urls = [NSArray arrayWithObject:url];
auto uriStrings = CreateAvnStringArray(urls);
- events->OnCompleted(uriStrings);
+ events->OnCompletedWithFilter(uriStrings, selectedIndex);
[panel orderOut:panel];
@@ -338,7 +348,7 @@ public:
return;
}
- events->OnCompleted(nullptr);
+ events->OnCompletedWithFilter(nullptr, selectedIndex);
};
diff --git a/samples/ControlCatalog/Pages/DialogsPage.xaml b/samples/ControlCatalog/Pages/DialogsPage.xaml
index 60d991e324..75d98827c1 100644
--- a/samples/ControlCatalog/Pages/DialogsPage.xaml
+++ b/samples/ControlCatalog/Pages/DialogsPage.xaml
@@ -38,6 +38,7 @@
+
diff --git a/samples/ControlCatalog/Pages/DialogsPage.xaml.cs b/samples/ControlCatalog/Pages/DialogsPage.xaml.cs
index 5b7814fb5d..7baa86e8b8 100644
--- a/samples/ControlCatalog/Pages/DialogsPage.xaml.cs
+++ b/samples/ControlCatalog/Pages/DialogsPage.xaml.cs
@@ -276,6 +276,48 @@ namespace ControlCatalog.Pages
await SetPickerResult(file is null ? null : new[] { file });
};
+ this.Get