From 80a7ef5a55eb5e594af018077630c5aa892ccc19 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Fri, 17 Jun 2005 14:25:08 +0200 Subject: [PATCH] Fixed handling 'page down', which was broken in version 1.3.26 --- CONTRIBUTORS | 1 + HISTORY | 5 +++++ osdbase.c | 6 +++++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 92c68011..0bb913f0 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1241,6 +1241,7 @@ Udo Richter for fixing handling lifetime when deciding whether to delete a recording for reporting a problem in handling page up/down in menu lists in case there are several non selectable items in a row + for fixing handling 'page down' after it was broken in version 1.3.26 Sven Kreiensen for his help in keeping 'channels.conf.terr' up to date diff --git a/HISTORY b/HISTORY index 51515eb4..4b4693de 100644 --- a/HISTORY +++ b/HISTORY @@ -3612,3 +3612,8 @@ Video Disk Recorder Revision History - Added cOsdMenu::SetCols() to allow adjusting the menu columns. - Modified cEITScanner::Process() so that it works on systems with only budget cards or a mix of DVB-S, DVB-C or DVB-T cards. + +2005-06-17: Version 1.3.27 + +- Fixed handling 'page down', which was broken in version 1.3.26 (thanks to Udo + Richter). diff --git a/osdbase.c b/osdbase.c index 7d03dbd0..b27b1df2 100644 --- a/osdbase.c +++ b/osdbase.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: osdbase.c 1.17 2005/06/12 10:44:22 kls Exp $ + * $Id: osdbase.c 1.18 2005/06/17 14:22:34 kls Exp $ */ #include "osdbase.h" @@ -350,6 +350,10 @@ void cOsdMenu::PageDown(void) current += displayMenuItems; first += displayMenuItems; int last = Count() - 1; + if (current > last) + current = last; + if (first + displayMenuItems > last) + first = max(0, last - displayMenuItems + 1); int tmpCurrent = current; while (!SelectableItem(tmpCurrent) && ++tmpCurrent <= last) ;