1
0
Эх сурвалжийг харах

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 жил өмнө
parent
commit
8756feff5d

+ 13 - 2
src/Avalonia.FreeDesktop/DBusIme/DBusTextInputMethodBase.cs

@@ -179,12 +179,23 @@ namespace Avalonia.FreeDesktop.DBusIme
                 _disposables.Add(d);
                 _disposables.Add(d);
         }
         }
 
 
-        public void Dispose()
+        public async void Dispose()
         {
         {
             foreach(var d in _disposables)
             foreach(var d in _disposables)
                 d.Dispose();
                 d.Dispose();
             _disposables.Clear();
             _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;
             _currentName = null;
         }
         }