summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Stepanov <penguinolog@users.noreply.github.com>2023-04-12 09:30:34 +0200
committerGitHub <noreply@github.com>2023-04-12 09:30:34 +0200
commited8074910d54d510ba30829c6bb7ed4c3b3e0a55 (patch)
treeaff3a2aa1c63cbf697730c765783c324d7575885
parent2f80badfdd011dc3e96c95e51bf459b282f6d735 (diff)
downloadurwid-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-xurwid/container.py2
-rw-r--r--urwid/tests/test_container.py6
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):