瀏覽代碼

Fix DBus Exception on window close (#13997)

* Only disconnect from ibus when connected

* Catch exception on Destroy when ime context is successfully created but doesn't actually exist
affederaffe 1 年之前
父節點
當前提交
8756feff5d
共有 1 個文件被更改,包括 13 次插入2 次删除
  1. 13 2
      src/Avalonia.FreeDesktop/DBusIme/DBusTextInputMethodBase.cs

+ 13 - 2
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;
         }