Browse Source

fix(focus): remove disabled widgets from tab focus (#554)

pull/556/head
Pier CeccoPierangioliEugenio 3 months ago committed by GitHub
parent
commit
91e0f0caea
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 18
      libs/pyTermTk/TermTk/TTkWidgets/container.py

18
libs/pyTermTk/TermTk/TTkWidgets/container.py

@ -176,10 +176,11 @@ class TTkContainer(TTkWidget):
widgets = _lw[index_widget+1:] widgets = _lw[index_widget+1:]
for _w in widgets: for _w in widgets:
if focusPolicy & _w.focusPolicy(): if _w._enabled:
return _w if focusPolicy & _w.focusPolicy():
if isinstance(_w,TTkContainer) and (_fw:=_w._getFirstFocus(widget=None,focusPolicy=focusPolicy)): return _w
return _fw if isinstance(_w,TTkContainer) and (_fw:=_w._getFirstFocus(widget=None,focusPolicy=focusPolicy)):
return _fw
return None return None
def _getLastFocus(self, widget:Optional[TTkWidget], focusPolicy:TTkK.FocusPolicy) -> Optional[TTkWidget]: def _getLastFocus(self, widget:Optional[TTkWidget], focusPolicy:TTkK.FocusPolicy) -> Optional[TTkWidget]:
@ -192,10 +193,11 @@ class TTkContainer(TTkWidget):
widgets = _lw[index_widget+1:] widgets = _lw[index_widget+1:]
for _w in widgets: for _w in widgets:
if isinstance(_w,TTkContainer) and (_fw:=_w._getLastFocus(widget=None,focusPolicy=focusPolicy)): if _w._enabled:
return _fw if isinstance(_w,TTkContainer) and (_fw:=_w._getLastFocus(widget=None,focusPolicy=focusPolicy)):
if focusPolicy & _w.focusPolicy(): return _fw
return _w if focusPolicy & _w.focusPolicy():
return _w
return None return None
def _focusChildWidget(self) -> Optional[TTkWidget]: def _focusChildWidget(self) -> Optional[TTkWidget]:

Loading…
Cancel
Save