Primitivus: menu roller doesn't go anymore on a menu if it's empty

This commit is contained in:
Goffi 2010-07-16 22:36:58 +08:00
commit 3b5bd7695b

View file

@ -390,6 +390,10 @@ class Menu(urwid.FlowWidget):
def selectable(self):
return True
def getMenuSize(self):
"""return the current number of categories in this menu"""
return len(self.menu_keys)
def setOrigX(self, orig_x):
self.x_orig = orig_x
@ -515,6 +519,11 @@ class MenuRoller(urwid.WidgetWrap):
if self.columns.get_focus_column()==0 and self.selected < len(self.name_list)-1:
self.selected += 1
self.__showSelected()
elif key=='right':
if self.columns.get_focus_column()==0 and \
(self.columns.widget_list[1].__class__ == urwid.Text or \
self.menus[self.name_list[self.selected]].getMenuSize()==0):
return #if we have no menu or the menu is empty, we don't go the right column
return super(MenuRoller, self).keypress(size, key)