diff --git a/src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj b/src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj index 779c41757a..28a288f22a 100644 --- a/src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj +++ b/src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj @@ -13,7 +13,7 @@ - + @@ -26,19 +26,22 @@ - - + + + + - - + + + diff --git a/src/Avalonia.FreeDesktop/DBusMenuExporter.cs b/src/Avalonia.FreeDesktop/DBusMenuExporter.cs index 77f9d31273..b9a11b865c 100644 --- a/src/Avalonia.FreeDesktop/DBusMenuExporter.cs +++ b/src/Avalonia.FreeDesktop/DBusMenuExporter.cs @@ -58,6 +58,7 @@ namespace Avalonia.FreeDesktop private DBusMenuExporterImpl() { + BackingProperties.Version = 4; BackingProperties.Status = string.Empty; BackingProperties.TextDirection = string.Empty; BackingProperties.IconThemePath = Array.Empty(); @@ -280,11 +281,9 @@ namespace Avalonia.FreeDesktop if (loader is not null) { var icon = loader.LoadIcon(item.Icon.PlatformImpl.Item); - using var ms = new MemoryStream(); icon.Save(ms); - return new DBusVariantItem("ay", - new DBusArrayItem(DBusType.Byte, ms.ToArray().Select(static x => new DBusByteItem(x)))); + return new DBusVariantItem("ay", new DBusByteArrayItem(ms.ToArray())); } } } @@ -325,7 +324,7 @@ namespace Avalonia.FreeDesktop children[c] = new DBusVariantItem("(ia{sv}av)", new DBusStructItem(new DBusItem[] { new DBusInt32Item(layout.Item1), - new DBusArrayItem(DBusType.DictEntry, layout.Item2.Select(static x => new DBusDictEntryItem(new DBusStringItem(x.Key), x.Value))), + new DBusArrayItem(DBusType.DictEntry, layout.Item2.Select(static x => new DBusDictEntryItem(new DBusStringItem(x.Key), x.Value)).ToArray()), new DBusArrayItem(DBusType.Variant, layout.Item3) })); } diff --git a/src/Avalonia.FreeDesktop/DBusSystemDialog.cs b/src/Avalonia.FreeDesktop/DBusSystemDialog.cs index f6964ab92a..096093347b 100644 --- a/src/Avalonia.FreeDesktop/DBusSystemDialog.cs +++ b/src/Avalonia.FreeDesktop/DBusSystemDialog.cs @@ -88,7 +88,7 @@ namespace Avalonia.FreeDesktop if (options.SuggestedFileName is { } currentName) chooserOptions.Add("current_name", new DBusVariantItem("s", new DBusStringItem(currentName))); if (options.SuggestedStartLocation?.TryGetLocalPath() is { } folderPath) - chooserOptions.Add("current_folder", new DBusVariantItem("ay", new DBusArrayItem(DBusType.Byte, Encoding.UTF8.GetBytes(folderPath).Select(static x => new DBusByteItem(x))))); + chooserOptions.Add("current_folder", new DBusVariantItem("ay", new DBusByteArrayItem(Encoding.UTF8.GetBytes(folderPath)))); objectPath = await _fileChooser.SaveFileAsync(parentWindow, options.Title ?? string.Empty, chooserOptions); var request = new OrgFreedesktopPortalRequest(_connection, "org.freedesktop.portal.Desktop", objectPath); @@ -149,7 +149,7 @@ namespace Avalonia.FreeDesktop if (fileTypes is null) return null; - var filters = new DBusArrayItem(DBusType.Struct, new List()); + var filters = new List(); foreach (var fileType in fileTypes) { @@ -173,7 +173,7 @@ namespace Avalonia.FreeDesktop })); } - return filters.Count > 0 ? new DBusVariantItem("a(sa(us))", filters) : null; + return filters.Count > 0 ? new DBusVariantItem("a(sa(us))", new DBusArrayItem(DBusType.Struct, filters)) : null; } } } diff --git a/src/Avalonia.FreeDesktop/DBusXml/DBusMenu.xml b/src/Avalonia.FreeDesktop/DBusXml/com.canonical.dbusmenu.xml similarity index 100% rename from src/Avalonia.FreeDesktop/DBusXml/DBusMenu.xml rename to src/Avalonia.FreeDesktop/DBusXml/com.canonical.dbusmenu.xml diff --git a/src/Avalonia.FreeDesktop/DBusXml/DBus.xml b/src/Avalonia.FreeDesktop/DBusXml/org.freedesktop.DBus.xml similarity index 100% rename from src/Avalonia.FreeDesktop/DBusXml/DBus.xml rename to src/Avalonia.FreeDesktop/DBusXml/org.freedesktop.DBus.xml diff --git a/src/Avalonia.FreeDesktop/DBusXml/StatusNotifierItem.xml b/src/Avalonia.FreeDesktop/DBusXml/org.kde.StatusNotifierItem.xml similarity index 100% rename from src/Avalonia.FreeDesktop/DBusXml/StatusNotifierItem.xml rename to src/Avalonia.FreeDesktop/DBusXml/org.kde.StatusNotifierItem.xml diff --git a/src/Avalonia.FreeDesktop/DBusXml/StatusNotifierWatcher.xml b/src/Avalonia.FreeDesktop/DBusXml/org.kde.StatusNotifierWatcher.xml similarity index 100% rename from src/Avalonia.FreeDesktop/DBusXml/StatusNotifierWatcher.xml rename to src/Avalonia.FreeDesktop/DBusXml/org.kde.StatusNotifierWatcher.xml