Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

listbox with empty pile as last element crashes #253

Closed
mwhudson opened this issue Sep 8, 2017 · 0 comments · Fixed by #824
Closed

listbox with empty pile as last element crashes #253

mwhudson opened this issue Sep 8, 2017 · 0 comments · Fixed by #824

Comments

@mwhudson
Copy link
Contributor

mwhudson commented Sep 8, 2017

Simple reproducer:

mwhudson@aeglos:~/tmp$ cat ut.py
import urwid

def exit_on_q(input):
    if input in ('q', 'Q'):
        raise urwid.ExitMainLoop()

listbox = urwid.ListBox([
    urwid.Text("hi"),
    urwid.Pile([]),
    ])

loop = urwid.MainLoop(listbox, unhandled_input=exit_on_q)
loop.run()
mwhudson@aeglos:~/tmp$ python ut.py
Traceback (most recent call last):
  File "ut.py", line 13, in <module>
    loop.run()
  File "/usr/lib/python2.7/dist-packages/urwid/main_loop.py", line 278, in run
    self._run()
  File "/usr/lib/python2.7/dist-packages/urwid/main_loop.py", line 376, in _run
    self.event_loop.run()
  File "/usr/lib/python2.7/dist-packages/urwid/main_loop.py", line 682, in run
    self._loop()
  File "/usr/lib/python2.7/dist-packages/urwid/main_loop.py", line 710, in _loop
    self._entering_idle()
  File "/usr/lib/python2.7/dist-packages/urwid/main_loop.py", line 671, in _entering_idle
    callback()
  File "/usr/lib/python2.7/dist-packages/urwid/main_loop.py", line 564, in entering_idle
    self.draw_screen()
  File "/usr/lib/python2.7/dist-packages/urwid/main_loop.py", line 578, in draw_screen
    canvas = self._topmost_widget.render(self.screen_size, focus=True)
  File "/usr/lib/python2.7/dist-packages/urwid/widget.py", line 179, in finalize_render
    canv = fn(self, size, focus=focus)
  File "/usr/lib/python2.7/dist-packages/urwid/listbox.py", line 509, in render
    raise ListBoxError, "Listbox contents too short!  Probably urwid's fault (please report): %r" % ((top,middle,bottom),)
urwid.listbox.ListBoxError: Listbox contents too short!  Probably urwid's fault (please report): ((0, []), (0, <Text flow widget b'hi'>, 0, 1, None), (0, []))
mwhudson added a commit to canonical/subiquity that referenced this issue Sep 8, 2017
penguinolog pushed a commit to penguinolog/urwid that referenced this issue Feb 20, 2024
penguinolog added a commit that referenced this issue Feb 20, 2024
Fix: #253

Co-authored-by: Aleksei Stepanov <alekseis@nvidia.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants