From be94e300807ea1849f730d8e90c7c52c6aa7dcf4 Mon Sep 17 00:00:00 2001 From: Jumar Macato <16554748+jmacato@users.noreply.github.com> Date: Sun, 24 Oct 2021 14:15:09 +0800 Subject: [PATCH] simplify logic --- src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs b/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs index 2d30d2ee21..f1146ebdd9 100644 --- a/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs +++ b/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs @@ -89,19 +89,15 @@ namespace Avalonia.FreeDesktop _serviceConnected = true; InitializeSNWService(); + DestroyTrayIcon(); + if (_isVisible) { - DestroyTrayIcon(); CreateTrayIcon(); } - else - { - DestroyTrayIcon(); - } } else if (_serviceConnected & obj.NewOwner is null) { - s_trayIconInstanceId = 0; _serviceConnected = false; } } @@ -110,14 +106,12 @@ namespace Avalonia.FreeDesktop if (_connection is null || !_serviceConnected || _isDisposed) return; - var pid = Process.GetCurrentProcess().Id; var tid = s_trayIconInstanceId++; _sysTrayServiceName = $"org.kde.StatusNotifierItem-{pid}-{tid}"; _statusNotifierItemDbusObj = new StatusNotifierItemDbusObj(_dbusMenuPath); - - + try { _connection.RegisterObjectAsync(_statusNotifierItemDbusObj); @@ -360,11 +354,11 @@ namespace Avalonia.FreeDesktop Task WatchPropertiesAsync(Action handler); } - [Dictionary] // This class is used by Tmds.Dbus to ferry properties // from the SNI spec. // Don't change this to actual C# properties since // Tmds.Dbus will get confused. + [Dictionary] internal class StatusNotifierItemProperties { public string? Category;