From a64df2865a03ebd5c80261f6b891d37801d178a1 Mon Sep 17 00:00:00 2001
From: Jumar Macato <16554748+jmacato@users.noreply.github.com>
Date: Thu, 31 Aug 2023 11:52:06 +0000
Subject: [PATCH] Merge pull request #12730 from
affederaffe/fix-vala-panel-global-menu
Use Tmds.DBus.SourceGenerator 0.0.10
---
.../Avalonia.FreeDesktop.csproj | 13 ++++++++-----
src/Avalonia.FreeDesktop/DBusMenuExporter.cs | 7 +++----
src/Avalonia.FreeDesktop/DBusSystemDialog.cs | 6 +++---
.../{DBusMenu.xml => com.canonical.dbusmenu.xml} | 0
.../DBusXml/{DBus.xml => org.freedesktop.DBus.xml} | 0
...ifierItem.xml => org.kde.StatusNotifierItem.xml} | 0
...atcher.xml => org.kde.StatusNotifierWatcher.xml} | 0
7 files changed, 14 insertions(+), 12 deletions(-)
rename src/Avalonia.FreeDesktop/DBusXml/{DBusMenu.xml => com.canonical.dbusmenu.xml} (100%)
rename src/Avalonia.FreeDesktop/DBusXml/{DBus.xml => org.freedesktop.DBus.xml} (100%)
rename src/Avalonia.FreeDesktop/DBusXml/{StatusNotifierItem.xml => org.kde.StatusNotifierItem.xml} (100%)
rename src/Avalonia.FreeDesktop/DBusXml/{StatusNotifierWatcher.xml => org.kde.StatusNotifierWatcher.xml} (100%)
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