Преглед на файлове

Fixed ContextMenu crash

Tig преди 11 месеца
родител
ревизия
5c288b4022
променени са 2 файла, в които са добавени 8 реда и са изтрити 11 реда
  1. 4 11
      Terminal.Gui/Application/Application.Keyboard.cs
  2. 4 0
      Terminal.Gui/Views/Menu/ContextMenu.cs

+ 4 - 11
Terminal.Gui/Application/Application.Keyboard.cs

@@ -314,21 +314,14 @@ public static partial class Application // Keyboard handling
                     static () =>
                     {
                         // TODO: This OverlapppedTop tomfoolery goes away in addressing #2491
-                        if (ApplicationOverlapped.OverlappedTop is null)
+                        if (ApplicationOverlapped.OverlappedTop is null && Current is { })
                         {
-                            if (Current is { })
-                            {
-                                return Current.AdvanceFocus (NavigationDirection.Backward, TabBehavior.TabGroup);
-                            }
+                            return Current.AdvanceFocus (NavigationDirection.Backward, TabBehavior.TabGroup);
                         }
-                        else
-                        {
-                            ApplicationOverlapped.OverlappedMovePrevious ();
 
-                            return true;
-                        }
+                        ApplicationOverlapped.OverlappedMovePrevious ();
 
-                        return false;
+                        return true;
                     }
                    );
 

+ 4 - 0
Terminal.Gui/Views/Menu/ContextMenu.cs

@@ -105,6 +105,10 @@ public sealed class ContextMenu : IDisposable
     /// <summary>Disposes the context menu object.</summary>
     public void Dispose ()
     {
+        if (_menuBar is null)
+        {
+            return;
+        }
         _menuBar.MenuAllClosed -= MenuBar_MenuAllClosed;
         Application.UngrabMouse ();
         _menuBar?.Dispose ();