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