Primitivus crash when we are on a disconnected contact
To reproduce:
- on contact panel, show hidden contacts (M-d)
- select a disconnected contact
- hit M-d again to hide disconnected contact ==> crash
Traceback:
Traceback (most recent call last):
File "./primitivus", line 552, in <module>
sat.start()
File "./primitivus", line 110, in start
self.loop.run()
File "/usr/local/lib/python2.7/dist-packages/urwid/main_loop.py", line 272, in run
self.screen.run_wrapper(self._run)
File "/usr/local/lib/python2.7/dist-packages/urwid/raw_display.py", line 242, in run_wrapper
return fn()
File "/usr/local/lib/python2.7/dist-packages/urwid/main_loop.py", line 337, in _run
self.event_loop.run()
File "/usr/local/lib/python2.7/dist-packages/urwid/main_loop.py", line 1014, in wrapper
return f(*args,**kargs)
File "/usr/local/lib/python2.7/dist-packages/urwid/main_loop.py", line 881, in io_callback
callback()
File "/usr/local/lib/python2.7/dist-packages/urwid/main_loop.py", line 388, in _update
self.process_input(keys)
File "/usr/local/lib/python2.7/dist-packages/urwid/main_loop.py", line 488, in process_input
k = self._topmost_widget.keypress(self.screen_size, k)
File "/home/goffi/lib/urwid_satext/sat_widgets.py", line 972, in keypress
ret = urwid.Frame.keypress(self, size, key)
File "/usr/local/lib/python2.7/dist-packages/urwid/container.py", line 1103, in keypress
return self.body.keypress( (maxcol, remaining), key )
File "/usr/local/lib/python2.7/dist-packages/urwid/container.py", line 2241, in keypress
key = w.keypress((mc,) + size[1:], key)
File "/home/goffi/sat_principal/lib/sat_frontends/primitivus/contact_list.py", line 65, in keypress
self.update()
File "/home/goffi/sat_principal/lib/sat_frontends/primitivus/contact_list.py", line 53, in update
self.frame.body.set_focus(position)
File "/usr/local/lib/python2.7/dist-packages/urwid/listbox.py", line 567, in set_focus
self.body.set_focus(position)
File "/usr/local/lib/python2.7/dist-packages/urwid/listbox.py", line 178, in set_focus
raise IndexError, "No widget at position %s" % (position,)
IndexError: No widget at position 85