From 43aff2d6805cd6085e6e942a5eef86e312eb972b Mon Sep 17 00:00:00 2001
From: affederaffe <68356204+affederaffe@users.noreply.github.com>
Date: Mon, 28 Aug 2023 20:11:28 +0200
Subject: [PATCH 1/3] Fix inconsistent naming
---
src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj | 11 +++++++----
.../{DBusMenu.xml => com.canonical.dbusmenu.xml} | 0
.../DBusXml/{DBus.xml => org.freedesktop.DBus.xml} | 0
...otifierItem.xml => org.kde.StatusNotifierItem.xml} | 0
...rWatcher.xml => org.kde.StatusNotifierWatcher.xml} | 0
5 files changed, 7 insertions(+), 4 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..8b472b7722 100644
--- a/src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj
+++ b/src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj
@@ -26,19 +26,22 @@
-
-
+
+
+
+
-
-
+
+
+
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
From d40ce406fc134c7e89a9d4396257a3c1c41a8e0f Mon Sep 17 00:00:00 2001
From: affederaffe <68356204+affederaffe@users.noreply.github.com>
Date: Mon, 28 Aug 2023 20:11:47 +0200
Subject: [PATCH 2/3] Fix vala-panel global menu
---
src/Avalonia.FreeDesktop/DBusMenuExporter.cs | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/Avalonia.FreeDesktop/DBusMenuExporter.cs b/src/Avalonia.FreeDesktop/DBusMenuExporter.cs
index 77f9d31273..c0ffbc400e 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();
From cc9cc71e23a48ecb369696b033c5b21fbd1c9342 Mon Sep 17 00:00:00 2001
From: affederaffe <68356204+affederaffe@users.noreply.github.com>
Date: Thu, 31 Aug 2023 02:26:50 +0200
Subject: [PATCH 3/3] Use Tmds.DBus.SourceGenerator 0.0.10: - Fix global menu -
Optimize byte[] variants (e.g icons)
---
src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj | 2 +-
src/Avalonia.FreeDesktop/DBusMenuExporter.cs | 6 ++----
src/Avalonia.FreeDesktop/DBusSystemDialog.cs | 6 +++---
3 files changed, 6 insertions(+), 8 deletions(-)
diff --git a/src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj b/src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj
index 8b472b7722..28a288f22a 100644
--- a/src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj
+++ b/src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj
@@ -13,7 +13,7 @@
-
+
diff --git a/src/Avalonia.FreeDesktop/DBusMenuExporter.cs b/src/Avalonia.FreeDesktop/DBusMenuExporter.cs
index c0ffbc400e..b9a11b865c 100644
--- a/src/Avalonia.FreeDesktop/DBusMenuExporter.cs
+++ b/src/Avalonia.FreeDesktop/DBusMenuExporter.cs
@@ -281,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()));
}
}
}
@@ -326,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;
}
}
}