summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2009-06-01 11:57:46 +0200
committerKlaus Schmidinger <vdr@tvdr.de>2009-06-01 11:57:46 +0200
commit78d2fd3d0e2a69c27581afe710f5598862a750be (patch)
treecce6baf2ff5a9ab258eea9b00ff0de045ff43c9b
parent6f912d247fdb4f16c99e6e974f5a4d0b59dfd80f (diff)
downloadvdr-78d2fd3d0e2a69c27581afe710f5598862a750be.tar.gz
vdr-78d2fd3d0e2a69c27581afe710f5598862a750be.tar.bz2
Fixed cOsdMenu::Display() in case the menu size has changed
-rw-r--r--CONTRIBUTORS1
-rw-r--r--HISTORY2
-rw-r--r--osdbase.c3
3 files changed, 5 insertions, 1 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 99463b7b..6483964b 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -1220,6 +1220,7 @@ Reinhard Nissl <rnissl@gmx.de>
for reporting a memory leak when reaching the end of a recording during replay
for reporting a call to close(-1) in cUnbufferedFile::Close()
for reporting a possible problem in handling the length of DiSEqC command sequences
+ for fixing cOsdMenu::Display() in case the menu size has changed
Richard Robson <richard_robson@beeb.net>
for reporting freezing replay if a timer starts while in Transfer Mode from the
diff --git a/HISTORY b/HISTORY
index bfc46413..0add2d5b 100644
--- a/HISTORY
+++ b/HISTORY
@@ -6118,3 +6118,5 @@ Video Disk Recorder Revision History
- Added a workaround for the broken linux-dvb driver header files (based on a patch
from Tobias Grimm).
- Fixed handling the length of DiSEqC command sequences (reported by Reinhard Nissl).
+- Fixed cOsdMenu::Display() in case the menu size has changed (thanks to
+ Reinhard Nissl).
diff --git a/osdbase.c b/osdbase.c
index 0d9b6d85..9b59c050 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.32 2008/02/17 11:33:04 kls Exp $
+ * $Id: osdbase.c 2.1 2009/06/01 11:54:50 kls Exp $
*/
#include "osdbase.h"
@@ -217,6 +217,7 @@ void cOsdMenu::Display(void)
}
if (current < 0)
current = 0; // just for safety - there HAS to be a current item!
+ first = min(first, max(0, count - displayMenuItems)); // in case the menu size has changed
if (current - first >= displayMenuItems || current < first) {
first = current - displayMenuItems / 2;
if (first + displayMenuItems > count)