diff --git a/src/Avalonia.FreeDesktop/DBusIme/DBusTextInputMethodBase.cs b/src/Avalonia.FreeDesktop/DBusIme/DBusTextInputMethodBase.cs index 6cd24c49eb..158321acf5 100644 --- a/src/Avalonia.FreeDesktop/DBusIme/DBusTextInputMethodBase.cs +++ b/src/Avalonia.FreeDesktop/DBusIme/DBusTextInputMethodBase.cs @@ -179,12 +179,23 @@ namespace Avalonia.FreeDesktop.DBusIme _disposables.Add(d); } - public void Dispose() + public async void Dispose() { foreach(var d in _disposables) d.Dispose(); _disposables.Clear(); - _ = DisconnectAsync(); + if (!IsConnected) + return; + try + { + await DisconnectAsync(); + } + catch (Exception ex) + { + Logger.TryGet(LogEventLevel.Error, "IME") + ?.Log(this, "Error while destroying the context:\n" + ex); + } + _currentName = null; }