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

This commit is contained in:
BDisp
2024-11-20 14:30:36 +00:00
parent be0832febb
commit 8c910fa04d

View File

@@ -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 ();
}