From 19003c0f2e9e1ca27883e543e872b9f98bcef7c2 Mon Sep 17 00:00:00 2001 From: Jumar Macato <16554748+jmacato@users.noreply.github.com> Date: Mon, 27 Sep 2021 22:22:56 +0800 Subject: [PATCH] Use single connection + new guid per SNI object... --- src/Avalonia.X11/X11TrayIconImpl.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Avalonia.X11/X11TrayIconImpl.cs b/src/Avalonia.X11/X11TrayIconImpl.cs index 1d8db8f929..49ac1a0757 100644 --- a/src/Avalonia.X11/X11TrayIconImpl.cs +++ b/src/Avalonia.X11/X11TrayIconImpl.cs @@ -38,7 +38,7 @@ namespace Avalonia.X11 public X11TrayIconImpl() { - con = DBusHelper.TryGetConnection(); + con = DBusHelper.TryInitialize(); _dbusmenuPath = DBusMenuExporter.GenerateDBusMenuObjPath; MenuExporter = DBusMenuExporter.TryCreateDetachedNativeMenu(_dbusmenuPath, con); CreateTrayIcon(); @@ -113,7 +113,7 @@ namespace Avalonia.X11 } _icon = new DbusPixmap(w, h, pixByteArray); - _statusNotifierItemDbusObj.SetIcon(_icon); + _statusNotifierItemDbusObj?.SetIcon(_icon); } @@ -139,7 +139,7 @@ namespace Avalonia.X11 _statusNotifierItemDbusObj?.SetTitleAndTooltip(_tooltipText); } } - + /// /// DBus Object used for setting system tray icons. /// @@ -162,7 +162,8 @@ namespace Avalonia.X11 public StatusNotifierItemDbusObj(ObjectPath dbusmenuPath) { - ObjectPath = new ObjectPath($"/StatusNotifierItem"); + var guid = Guid.NewGuid().ToString().Replace("-", ""); + ObjectPath = new ObjectPath($"/net/avaloniaui/sni/{guid}"); _backingProperties = new StatusNotifierItemProperties {