From 926d15d85e3fd74cb63d3ff0f49cf42dbbed215b Mon Sep 17 00:00:00 2001 From: holdxen <72525794+holdxen@users.noreply.github.com> Date: Fri, 15 May 2026 17:29:26 +0800 Subject: [PATCH] Observe potential DBus exception in UnregisterWindowAsync (#21344) * Fix https://github.com/AvaloniaUI/Avalonia/issues/17616 * use parameters while logging Co-authored-by: Julien Lebosquain * remove unnecessary try-catch --------- Co-authored-by: Julien Lebosquain --- src/Avalonia.FreeDesktop/DBusMenuExporter.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Avalonia.FreeDesktop/DBusMenuExporter.cs b/src/Avalonia.FreeDesktop/DBusMenuExporter.cs index 586f566e1c..74e5157bc1 100644 --- a/src/Avalonia.FreeDesktop/DBusMenuExporter.cs +++ b/src/Avalonia.FreeDesktop/DBusMenuExporter.cs @@ -10,6 +10,7 @@ using Avalonia.Controls.Platform; using Avalonia.Input; using Avalonia.Platform; using Avalonia.Threading; +using Avalonia.Logging; using Tmds.DBus.Protocol; using Tmds.DBus.SourceGenerator; @@ -129,7 +130,14 @@ namespace Avalonia.FreeDesktop return; _disposed = true; // Fire and forget - _ = _registrar?.UnregisterWindowAsync(_xid); + _ = _registrar?.UnregisterWindowAsync(_xid)?.ContinueWith(t => + { + if (t.Exception != null) + { + Logger.TryGet(LogEventLevel.Warning, LogArea.Platform) + ?.Log(this, "DBusMenu UnregisterWindowAsync failed: {Exception}", t.Exception); + } + }, TaskContinuationOptions.OnlyOnFaulted); _pathHandler.Remove(this); Connection.RemoveMethodHandler(_pathHandler.Path); }