浏览代码

Ensure tab get focus if the container can't get focus.

BDisp 8 月之前
父节点
当前提交
8c910fa04d
共有 1 个文件被更改,包括 7 次插入2 次删除
  1. 7 2
      Terminal.Gui/Views/TabView/TabView.cs

+ 7 - 2
Terminal.Gui/Views/TabView/TabView.cs

@@ -142,7 +142,7 @@ public class TabView : View
 
             if (old != _selectedTab)
             {
-                if (_selectedTabHasFocus || !_containerView.CanFocus)
+                if (TabCanSetFocus ())
                 {
                     SelectedTab?.SetFocus ();
                 }
@@ -153,6 +153,11 @@ public class TabView : View
         }
     }
 
+    private bool TabCanSetFocus ()
+    {
+        return IsInitialized && SelectedTab is { } && (_selectedTabHasFocus || !_containerView.CanFocus);
+    }
+
     private void ContainerViewCanFocus (object sender, EventArgs eventArgs)
     {
         _containerView.CanFocus = _containerView.Subviews.Count (v => v.CanFocus) > 0;
@@ -509,7 +514,7 @@ public class TabView : View
             i += tabTextWidth + 1;
         }
 
-        if (_selectedTabHasFocus)
+        if (TabCanSetFocus ())
         {
             SelectedTab?.SetFocus ();
         }