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: