diff options
author | Alexey Stepanov <penguinolog@users.noreply.github.com> | 2023-04-12 09:30:34 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-12 09:30:34 +0200 |
commit | ed8074910d54d510ba30829c6bb7ed4c3b3e0a55 (patch) | |
tree | aff3a2aa1c63cbf697730c765783c324d7575885 | |
parent | 2f80badfdd011dc3e96c95e51bf459b282f6d735 (diff) | |
download | urwid-ed8074910d54d510ba30829c6bb7ed4c3b3e0a55.tar.gz |
Fix regression: `Pile()` focus_item can be Widget -> need to set property `focus` in constructor (#535)
Co-authored-by: Aleksei Stepanov <alekseis@nvidia.com>
-rwxr-xr-x | urwid/container.py | 2 | ||||
-rw-r--r-- | urwid/tests/test_container.py | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/urwid/container.py b/urwid/container.py index 6923388..64a6e35 100755 --- a/urwid/container.py +++ b/urwid/container.py @@ -1659,7 +1659,7 @@ class Pile(Widget, WidgetContainerMixin, WidgetContainerListContentsMixin): focus_item = i if self.contents and focus_item is not None: - self.focus_position = focus_item + self.focus = focus_item self.pref_col = 0 diff --git a/urwid/tests/test_container.py b/urwid/tests/test_container.py index 3796cc7..24930a7 100644 --- a/urwid/tests/test_container.py +++ b/urwid/tests/test_container.py @@ -395,6 +395,12 @@ class WidgetSquishTest(unittest.TestCase): self.fwstest(urwid.Button("hello")) self.fwstest(urwid.RadioButton([], "hello")) + def testFocus(self): + expect_focused = urwid.Button("Focused") + pile = urwid.Pile((urwid.Button("First"), expect_focused, urwid.Button("Last")), focus_item=expect_focused) + self.assertEqual(1, pile.focus_position) + self.assertEqual(expect_focused, pile.focus) + class CommonContainerTest(unittest.TestCase): def test_pile(self): |