diff -r a5a3f48e92c9 tools/pygrub/src/pygrub --- a/tools/pygrub/src/pygrub Wed Oct 04 19:00:11 2006 +0100 +++ b/tools/pygrub/src/pygrub Wed Oct 04 17:55:19 2006 -0400 @@ -25,7 +25,7 @@ import grub.GrubConf import grub.GrubConf import grub.fsys -PYGRUB_VER = 0.5 +PYGRUB_VER = 0.6 def enable_cursor(ison): if ison: @@ -167,15 +167,22 @@ class Grub: def fill_entry_list(self): self.entry_win.clear() self.entry_win.box() - for y in range(0, len(self.cf.images)): + + maxy = self.entry_win.getmaxyx()[0]-3 # maxy - 2 for the frame + index + if self.selected_image > self.start_image + maxy: + self.start_image = self.selected_image + if self.selected_image < self.start_image: + self.start_image = self.selected_image + + for y in range(self.start_image, len(self.cf.images)): i = self.cf.images[y] - if (0, y) > self.entry_win.getmaxyx(): + if y > self.start_image + maxy: break if y == self.selected_image: attr = curses.A_REVERSE else: attr = 0 - self.entry_win.addstr(y + 1, 2, i.title.ljust(70), attr) + self.entry_win.addstr(y + 1 - self.start_image, 2, i.title.ljust(70), attr) self.entry_win.refresh() def edit_entry(self, origimg): @@ -364,6 +371,7 @@ class Grub: # now loop until we hit the timeout or get a go from the user mytime = 0 + self.start_image = 0 while (timeout == -1 or mytime < int(timeout)): draw() if timeout != -1 and mytime != -1: