diff --git a/src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj b/src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj
index da9add1fa4..da6ae9e856 100644
--- a/src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj
+++ b/src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj
@@ -5,20 +5,20 @@
enable
-
+
-
+
-
+
-
-
+
+
diff --git a/src/Avalonia.FreeDesktop/DBusMenuExporter.cs b/src/Avalonia.FreeDesktop/DBusMenuExporter.cs
index 3073ea580c..77f9d31273 100644
--- a/src/Avalonia.FreeDesktop/DBusMenuExporter.cs
+++ b/src/Avalonia.FreeDesktop/DBusMenuExporter.cs
@@ -38,7 +38,7 @@ namespace Avalonia.FreeDesktop
private bool _resetQueued;
private int _nextId = 1;
- public DBusMenuExporterImpl(Connection connection, IntPtr xid)
+ public DBusMenuExporterImpl(Connection connection, IntPtr xid) : this()
{
Connection = connection;
_xid = (uint)xid.ToInt32();
@@ -47,7 +47,7 @@ namespace Avalonia.FreeDesktop
_ = InitializeAsync();
}
- public DBusMenuExporterImpl(Connection connection, string path)
+ public DBusMenuExporterImpl(Connection connection, string path) : this()
{
Connection = connection;
_appMenu = false;
@@ -56,6 +56,13 @@ namespace Avalonia.FreeDesktop
_ = InitializeAsync();
}
+ private DBusMenuExporterImpl()
+ {
+ BackingProperties.Status = string.Empty;
+ BackingProperties.TextDirection = string.Empty;
+ BackingProperties.IconThemePath = Array.Empty();
+ }
+
protected override Connection Connection { get; }
public override string Path { get; }
@@ -202,15 +209,9 @@ namespace Avalonia.FreeDesktop
return id;
}
- private void OnMenuItemsChanged(object? sender, NotifyCollectionChangedEventArgs e)
- {
- QueueReset();
- }
+ private void OnMenuItemsChanged(object? sender, NotifyCollectionChangedEventArgs e) => QueueReset();
- private void OnItemPropertyChanged(object? sender, AvaloniaPropertyChangedEventArgs e)
- {
- QueueReset();
- }
+ private void OnItemPropertyChanged(object? sender, AvaloniaPropertyChangedEventArgs e) => QueueReset();
private static readonly string[] s_allProperties = {
"type", "label", "enabled", "visible", "shortcut", "toggle-type", "children-display", "toggle-state", "icon-data"
diff --git a/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs b/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs
index fed8b87bc9..43ae48341c 100644
--- a/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs
+++ b/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs
@@ -220,6 +220,16 @@ namespace Avalonia.FreeDesktop
{
Connection = connection;
BackingProperties.Menu = dbusMenuPath;
+ BackingProperties.Category = string.Empty;
+ BackingProperties.Status = string.Empty;
+ BackingProperties.Id = string.Empty;
+ BackingProperties.Title = string.Empty;
+ BackingProperties.IconPixmap = Array.Empty<(int, int, byte[])>();
+ BackingProperties.AttentionIconName = string.Empty;
+ BackingProperties.AttentionIconPixmap = Array.Empty<(int, int, byte[])>();
+ BackingProperties.AttentionMovieName = string.Empty;
+ BackingProperties.OverlayIconName = string.Empty;
+ BackingProperties.OverlayIconPixmap = Array.Empty<(int, int, byte[])>();
BackingProperties.ToolTip = (string.Empty, Array.Empty<(int, int, byte[])>(), string.Empty, string.Empty);
InvalidateAll();
}
@@ -234,7 +244,7 @@ namespace Avalonia.FreeDesktop
protected override ValueTask OnActivateAsync(int x, int y)
{
- Dispatcher.UIThread.Post(() => ActivationDelegate?.Invoke());
+ ActivationDelegate?.Invoke();
return new ValueTask();
}
@@ -267,7 +277,6 @@ namespace Avalonia.FreeDesktop
BackingProperties.Category = "ApplicationStatus";
BackingProperties.Status = text;
BackingProperties.Title = text;
- BackingProperties.ToolTip = (string.Empty, Array.Empty<(int, int, byte[])>(), text, string.Empty);
InvalidateAll();
}
}