From 5b2aaeaedd5c73edd60afdaaa505b813753f0d32 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Fri, 7 Jan 2005 16:19:29 +0100 Subject: [PATCH] Fixed deleting a menu item in case the next item is not selectable --- CONTRIBUTORS | 1 + HISTORY | 2 ++ osdbase.c | 11 ++++++++--- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 54fffd7a..c5398e2a 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1182,6 +1182,7 @@ Andreas Brugger Dino Ravnic for fixing some characters in the iso8859-2 font file for fixing some errors in the Croatian language texts + for fixing deleting a menu item in case the next item is not selectable Olaf Titz for fixing some typos in the Makefile's 'font' target diff --git a/HISTORY b/HISTORY index e30bbdfd..2a2b71ee 100644 --- a/HISTORY +++ b/HISTORY @@ -3278,3 +3278,5 @@ Video Disk Recorder Revision History - Fixed a possible race condition in cDevice::Action() (thanks to Mattias Grönlund). - Fixed the default quality value when grabbing a JPEG image (thanks to Patrick Gleichmann). +- Fixed deleting a menu item in case the next item is not selectable (thanks to + Dino Ravnic). diff --git a/osdbase.c b/osdbase.c index 42fda30e..ec04adb8 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.14 2004/07/17 13:29:13 kls Exp $ + * $Id: osdbase.c 1.15 2005/01/07 16:16:41 kls Exp $ */ #include "osdbase.h" @@ -149,8 +149,13 @@ void cOsdMenu::SetHelp(const char *Red, const char *Green, const char *Yellow, c void cOsdMenu::Del(int Index) { cList::Del(Get(Index)); - if (current == Count()) - current--; + int count = Count(); + while (current < count && !SelectableItem(current)) + current++; + if (current == count) { + while (current > 0 && !SelectableItem(current)) + current--; + } if (Index == first && first > 0) first--; }