From 91e0f0caea34344d4c81048edb7d0781653cefa8 Mon Sep 17 00:00:00 2001 From: Pier CeccoPierangioliEugenio Date: Sat, 20 Dec 2025 11:27:29 +0000 Subject: [PATCH] fix(focus): remove disabled widgets from tab focus (#554) --- libs/pyTermTk/TermTk/TTkWidgets/container.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/libs/pyTermTk/TermTk/TTkWidgets/container.py b/libs/pyTermTk/TermTk/TTkWidgets/container.py index 889fe9f3..7003423d 100644 --- a/libs/pyTermTk/TermTk/TTkWidgets/container.py +++ b/libs/pyTermTk/TermTk/TTkWidgets/container.py @@ -176,10 +176,11 @@ class TTkContainer(TTkWidget): widgets = _lw[index_widget+1:] for _w in widgets: - if focusPolicy & _w.focusPolicy(): - return _w - if isinstance(_w,TTkContainer) and (_fw:=_w._getFirstFocus(widget=None,focusPolicy=focusPolicy)): - return _fw + if _w._enabled: + if focusPolicy & _w.focusPolicy(): + return _w + if isinstance(_w,TTkContainer) and (_fw:=_w._getFirstFocus(widget=None,focusPolicy=focusPolicy)): + return _fw return None def _getLastFocus(self, widget:Optional[TTkWidget], focusPolicy:TTkK.FocusPolicy) -> Optional[TTkWidget]: @@ -192,10 +193,11 @@ class TTkContainer(TTkWidget): widgets = _lw[index_widget+1:] for _w in widgets: - if isinstance(_w,TTkContainer) and (_fw:=_w._getLastFocus(widget=None,focusPolicy=focusPolicy)): - return _fw - if focusPolicy & _w.focusPolicy(): - return _w + if _w._enabled: + if isinstance(_w,TTkContainer) and (_fw:=_w._getLastFocus(widget=None,focusPolicy=focusPolicy)): + return _fw + if focusPolicy & _w.focusPolicy(): + return _w return None def _focusChildWidget(self) -> Optional[TTkWidget]: