stig
stig copied to clipboard
Occasional crash scrolling to settings bottom
On: last development version After a while, I could not reproduce this anymore, but I got this error a few times when scrolling to the bottom of the settings (and continuing to scroll):
Traceback (most recent call last):
File "/home/francesco/.local/bin/stig", line 8, in <module>
sys.exit(run())
File "/home/francesco/.local/pipx/venvs/stig/lib/python3.8/site-packages/stig/__init__.py", line 25, in run
main.run()
File "/home/francesco/.local/pipx/venvs/stig/lib/python3.8/site-packages/stig/main.py", line 101, in run
if not tui.run(run_commands):
File "/home/francesco/.local/pipx/venvs/stig/lib/python3.8/site-packages/stig/tui/main.py", line 60, in run
tuiobjects.urwidloop.run()
File "/home/francesco/.local/pipx/venvs/stig/lib/python3.8/site-packages/urwid/main_loop.py", line 287, in run
self._run()
File "/home/francesco/.local/pipx/venvs/stig/lib/python3.8/site-packages/urwid/main_loop.py", line 385, in _run
self.event_loop.run()
File "/home/francesco/.local/pipx/venvs/stig/lib/python3.8/site-packages/stig/tui/urwidpatches.py", line 175, in run
raise self._exc_info
File "/usr/lib/python3.8/asyncio/events.py", line 81, in _run
self._context.run(self._callback, *self._args)
File "/home/francesco/.local/pipx/venvs/stig/lib/python3.8/site-packages/urwid/main_loop.py", line 1454, in faux_idle_callback
callback()
File "/home/francesco/.local/pipx/venvs/stig/lib/python3.8/site-packages/urwid/main_loop.py", line 574, in entering_idle
self.draw_screen()
File "/home/francesco/.local/pipx/venvs/stig/lib/python3.8/site-packages/urwid/main_loop.py", line 588, in draw_screen
canvas = self._topmost_widget.render(self.screen_size, focus=True)
File "/home/francesco/.local/pipx/venvs/stig/lib/python3.8/site-packages/urwid/widget.py", line 145, in cached_render
canv = fn(self, size, focus=focus)
File "/home/francesco/.local/pipx/venvs/stig/lib/python3.8/site-packages/urwid/widget.py", line 1761, in render
canv = get_delegate(self).render(size, focus=focus)
File "/home/francesco/.local/pipx/venvs/stig/lib/python3.8/site-packages/urwid/widget.py", line 145, in cached_render
canv = fn(self, size, focus=focus)
File "/home/francesco/.local/pipx/venvs/stig/lib/python3.8/site-packages/urwid/container.py", line 1560, in render
canv = w.render((maxcol, rows), focus=focus and item_focus)
File "/home/francesco/.local/pipx/venvs/stig/lib/python3.8/site-packages/urwid/widget.py", line 145, in cached_render
canv = fn(self, size, focus=focus)
File "/home/francesco/.local/pipx/venvs/stig/lib/python3.8/site-packages/stig/tui/tabs.py", line 138, in render
canvas = current_widget.render(size_content, focus)
File "/home/francesco/.local/pipx/venvs/stig/lib/python3.8/site-packages/urwid/widget.py", line 145, in cached_render
canv = fn(self, size, focus=focus)
File "/home/francesco/.local/pipx/venvs/stig/lib/python3.8/site-packages/stig/tui/views/base.py", line 251, in render
return super().render(size, focus=True)
File "/home/francesco/.local/pipx/venvs/stig/lib/python3.8/site-packages/urwid/widget.py", line 145, in cached_render
canv = fn(self, size, focus=focus)
File "/home/francesco/.local/pipx/venvs/stig/lib/python3.8/site-packages/urwid/widget.py", line 1761, in render
canv = get_delegate(self).render(size, focus=focus)
File "/home/francesco/.local/pipx/venvs/stig/lib/python3.8/site-packages/urwid/widget.py", line 145, in cached_render
canv = fn(self, size, focus=focus)
File "/home/francesco/.local/pipx/venvs/stig/lib/python3.8/site-packages/urwid/container.py", line 1560, in render
canv = w.render((maxcol, rows), focus=focus and item_focus)
File "/home/francesco/.local/pipx/venvs/stig/lib/python3.8/site-packages/urwid/widget.py", line 145, in cached_render
canv = fn(self, size, focus=focus)
File "/home/francesco/.local/pipx/venvs/stig/lib/python3.8/site-packages/urwid/decoration.py", line 226, in render
canv = self._original_widget.render(size, focus=focus)
File "/home/francesco/.local/pipx/venvs/stig/lib/python3.8/site-packages/urwid/widget.py", line 146, in cached_render
validate_size(self, size, canv)
File "/home/francesco/.local/pipx/venvs/stig/lib/python3.8/site-packages/urwid/widget.py", line 114, in validate_size
raise WidgetError("Widget %r rendered (%d x %d) canvas"
urwid.widget.WidgetError: Widget <ScrollBar selectable box widget <AttrMap selectable box widget <ListBox_patched_Keymapped selectable box widget> attr_map={None: 'settinglist'}>> rendered (64 x 43) canvas when passed size (64, 42)!
Pretty sure I've also seen this bug. This bug could hide potentially anywhere, maybe even in an upstream library.
Unless someone finds a way to reproduce this reliably, I'm not going to spend any time on this, especially because I'm planning on rewriting the TUI with a different library.
But let's keep this open just to prevent duplicate reports.